安卓应用挂起启动服务



我正在尝试创建一个简单的服务。

这是服务源

public class UploadService extends IntentService {
    public UploadService(String name) {
        super(name);
        // TODO Auto-generated constructor stub
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId){
        Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    protected void onHandleIntent(Intent intent) {
        // TODO Auto-generated method stub
        Toast.makeText(this, "handling intent", Toast.LENGTH_SHORT).show();
    }

这是清单中服务的定义

<service 
    android:enabled="true" 
    android:name="com.sopla.Services.UploadService">
</service>

这是我用来在程序启动时调用的主活动的onCreate方法中启动服务的代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent = new Intent(this,
            com.sopla.Services.UploadService.class);
    startService(intent);

我可以调试所有onCreate方法,但是在此之后程序挂起,并且无法到达服务源代码中的断点。

我错过了什么?谢谢 卢卡

试试你的 onStartCommand:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    TODO do something useful
    return Service.START_NOT_STICKY;
}

感谢每个人,但更好地检查日志猫我发现了问题。
出于某种奇怪的原因,要求 Ide 添加缺少的 IntentService 成员会添加一个带有字符串的协构函数,但在运行时会规定一个没有字符串的构造函数。
从协构体中删除字符串参数解决了问题。

相关内容

最新更新