2013-08-05 128 views
0

我想知道为什么Service在设备完成启动时不启动。 我希望当设备启动时,Service启动,但这不会发生,因为要启动它,我必须先打开应用程序。启动时服务启动时无法正常工作

这里是我到目前为止的代码:

public class BootService extends BroadcastReceiver{ 

    Intent intent; 

    @Override 
    public void onReceive(Context context, Intent intent2) { 
     intent = new Intent(context, MyService.class); 
     context.startService(intent); 
    } 

} 
+1

http://stackoverflow.com/q/8531926/726863 –

+0

http://www.vogella.com/articles/AndroidServices/#tutorial_ownservice –

+0

我想解决我的特定问题 –

回答

1

是BootService叫什么名字?

1)

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

2)

<receiver android:name="BootService" > 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 
+0

有!但它不起作用:-( –

+0

然后添加intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 这也适用于来自接收者的呼叫活动 – djodjo

0

添加下面一行在java文件:

对于BootService当引导完成后,你需要在你的清单中添加被触发

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

它应该工作。

0

为了使您的应用程序能够收到android.intent.action.BOOT_COMPLETED意图,您需要首先在设备上运行Activity

尝试制作虚拟活动,配置或对应用程序的介绍。


除此之外,将日志语句插入BroadcastReceiver进入Service的想法是好的。

同时确认您已经关注了djodjo's suggestions,因为这些都是正确的。