4

我已经阅读了一些关于启动服务的教程。我所做的是:

在清单中:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" >
</uses-permission>

<receiver android:name="my.package.ServiceStartup" >
   <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
   </intent-filter>
</receiver>

代码:

public class ServiceStartup extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
        Handler h = new Handler();
        h.postDelayed(new Runnable() {
           @Override
           public void run() {
               Intent dialogIntent = new Intent(getBaseContext(), MyActivity.class);
               dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
               getApplication().startActivity(dialogIntent);
           }
        }, 10000);
    }
}

这样,如果我重新启动设备并转到活动应用程序中的设置,我的服务不会启动。我能做些什么?我在哪里出错?谢谢!!

4

2 回答 2

5

您想开始活动或服务。在服务的情况下,您将不得不致电startService()。像:

getApplication().startService(new Intent(this, MyService.class));

于 2012-09-27T06:33:26.043 回答
1

你运行你的应用程序了吗?参考本教程

如果您的应用程序安装在 SD 卡上,那么它在 android.intent.action.BOOT_COMPLETED 事件之后不可用。在这种情况下为 android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE 事件注册自己。


另请注意,从 Android 3.0 开始,用户需要至少启动一次应用程序,然后您的应用程序才能接收 android.intent.action.BOOT_COMPLETED 事件。

于 2012-09-27T08:26:05.537 回答