android - 在启动时启动服务但不是整个 Android 应用程序

标签 android service background startup

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

相关文章:

jquery - Fancybox 高度问题 - 没有覆盖整个长页面(z-indexes 很好)

python - 如何解决AttributeError : 'module' object has no attribute 'createBackgroundSubtractorMOG' in opencv?

html - 仅在特定区域不透明度

java - Android/Java -- 如何创建HTTPS连接?

java - 链表有两种大小

Windows Server 2003 - 保持程序永久运行

c# - 为什么这个服务不启动

机器人-W/PackageManager : Package named<> does not exist

java - 在 Android 上使用 Java 选择第二条最近的短信

eclipse - 如何为在 Eclipse IDE 中开发的 RESTful Web 服务创建 War 文件