我已经在启动时阅读了一些关于启动服务的教程。 我所做的是:
在清单中:
<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);
}
}
这样,如果我重新启动设备并转到活动应用程序中的设置,我的服务就不会启动。我能做什么?我在哪里犯错误?谢谢!
答案 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事件之前至少启动一次应用程序。