我正在使用 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/