如何在启动时启动服务完成android?

时间:2012-09-27 06:28:38

标签: android service boot application-restart

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

在清单中:

<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>

CODE:

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);
    }
}

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

2 个答案:

答案 0 :(得分:5)

您想要开始活动或服务。如果需要服务,您必须致电startService()。像:

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

答案 1 :(得分:1)

你有没有运行你的应用程序?请参阅this tutorial

  

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


  

另请注意,从Android 3.0开始,用户需要在应用程序收到android.intent.action.BOOT_COMPLETED事件之前至少启动一次应用程序。