2013-03-21 50 views
6

我与Android合作。启动服务在系统启动而不是整个Android应用

我有一个应用程序我的工作使用一个活动到接着被用于由服务提供根据这些值的警报设置特定用户输入的值。做了研究,我决定如何让手机启动时启动应用程序,但是,我真正想要的是启动服务,但不会将应用程序加载到屏幕上。目前,当我打开设备时,整个应用程序会加载到屏幕上,然后我必须退出。

我已经下载有接口的设置,但其他在后台运行类似的计划。这是如何完成的?

+0

什么操作系统? – nunzabar 2013-03-21 19:58:14

+0

对不起。我正在使用Android。特别是API 10. – user2196720 2013-03-21 20:08:30

+3

发表一些代码。你实现了一个BroadcastReceiver(我假设),但是你在'onReceive'中究竟做了什么? context.startService()? – 2013-03-21 20:25:45

回答

22

首先,你必须创建一个接收器:

public class BootCompletedReceiver extends BroadcastReceiver { 

    final static String TAG = "BootCompletedReceiver"; 

    @Override 
    public void onReceive(Context context, Intent arg1) { 
     Log.w(TAG, "starting service..."); 
     context.startService(new Intent(context, YourService.class)); 
    } 
} 

然后,添加许可到AndroidManifest.xml:

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

和登记意向接收器:

<receiver android:name=".BootCompletedReceiver" > 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

这是后完成后,您的应用程序(Application类)将与服务一起运行,但没有任何活动。

啊,不要把你的SD卡(APP2SD或类似的东西)上的应用程序,因为它必须驻留在主存储系统启动完毕后,可用的权利。

+0

感谢您的回复。你确定我确实是在做正确的事情。它不起作用的原因是该服务需要来自活动的数据,该活动在活动开始之前不可用。不过,我已经想出了一个解决方法。非常感激! – user2196720 2013-03-22 13:11:51

相关问题