【问题标题】:My Android service does not start我的 Android 服务无法启动
【发布时间】:2013-01-02 15:32:31
【问题描述】:

我的服务没有启动。

我在我的服务中使用了以下onCreate 方法:

public void onCreate(Bundle savedInstanceState){

        wsConnection = new WSConnection();
        handler = new Handler();
        Bundle b = savedInstanceState;
        this.dbManager = b.getParcelable("object");

        super.onCreate();
        Log.i("prova","servizio attivato");
        TimerTask task = new TimerTask(){
            public void run(){


                FindPendingData();
            }

        };
        timer = new Timer();
        //timer.schedule(task, cal.getTime());
        timer.schedule(task, 0, 30000);
    }

同时,以下代码启动我的服务:

        Intent intent = new Intent(this, myService.class);
        intent.putExtra("object", myObject);
        startService(intent);

对象扩展Object并实现Parcelable

我也在Manifest中声明:

<service android:name="myPackage.myService" /> 

知道问题出在哪里吗?

编辑:我尝试删除 Bundle 参数,现在服务启动了!但我不明白为什么!有人可以帮助我吗?

【问题讨论】:

  • 任何,喜欢,错误或什么?
  • 你宁愿使用onStartCommand,这就是startService的结束
  • @njzk2 没有错误。我总是使用此代码来启动服务,通常效果很好。
  • 你怎么知道这行不通?
  • @Mike,我尝试将 Log.i() 放入 run() 方法中,但没有打印任何内容

标签: android android-intent service android-manifest


【解决方案1】:

使用onStartCommand(Intent, int, int)onStart() 而不是Service 的onCreate 来获取Intent 数据:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
      // get intent data here
    return START_STICKY;
}

正如评论 OP 所说:

没有错误。我总是使用此代码来启动服务,通常 这很好用

但是如果我们在 doc onCreate() 中看到,如果您要覆盖它,则不要使用任何参数

【讨论】:

  • 你是对的,我之前的代码不包含要传递的参数。
  • 我尝试将获取意图的代码放在 onStartCommand 中,但出现此错误:Parcelable 协议需要 Parcelable。我使用以下代码: public int onStartCommand(Intent intent, int flags, int startId) { // 在此处获取意图数据 Bundle b = intent.getExtras(); this.dbManager = b.getParcelable("object");返回 START_STICKY; }
  • @Joseph82 : 您从哪个类创建 myObject 实例?
  • @Joseph82 :将 this.dbManager = b.getParcelable("object"); 更改为 myObject = b.getParcelable("object");
  • @Joseph82 : 也请参阅this 帖子以解决下一个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多