我正在使用Android。
我有一个正在使用的应用程序,使用“ Activity ”来设置特定的用户输入值,然后服务将这些值用于提供基于这些值的警报。通过研究,我确定了如何在手机启动时启动应用程序,但是,我真正想要的是启动服务,但不将应用程序加载到屏幕上。目前,当我打开设备时,整个应用程序都会加载到屏幕上,然后我必须退出该应用程序。
我已经下载了类似的程序,这些程序具有用于设置的界面,但可以在后台运行。这是怎么做的?
最佳答案
首先,您必须创建一个接收器:
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" />
并注册 Intent 接收者:
<receiver android:name=".BootCompletedReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
完成此操作后,您的应用程序(
Application
类)将与服务一起运行,但没有 Activity 。嗯,不要将您的应用程序放在SD卡(APP2SD或类似的东西)上,因为它必须驻留在主存储器中才能在启动完成后立即可用。
关于android - 在启动时启动服务,但不能启动整个Android应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15556725/