android - Android开机时启动后台服务

标签 android service background

我需要始终有一个后台服务来同步我的 Android 应用程序和服务器。我知道如何通过我的应用程序启动它,但是当 Android 关闭时,后台服务就会消失。

如何让后台服务一直运行? (即使设备关闭然后再打开...)

我需要在 Android 的启动程序中添加我的后台服务。有什么提示吗?

最佳答案

使用<action android:name="android.intent.action.BOOT_COMPLETED" />用于在设备打开时启动您的服务。

AndroidManifest.xml :

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

在您的 AndroidManifest.xml 中添加权限作为:

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

在代码部分BootBroadcastReceiver :

public class BootBroadcastReceiver extends BroadcastReceiver {     
    static final String ACTION = "android.intent.action.BOOT_COMPLETED";   
    @Override   
    public void onReceive(Context context, Intent intent) {   
        // BOOT_COMPLETED” start Service    
        if (intent.getAction().equals(ACTION)) {   
            //Service    
            Intent serviceIntent = new Intent(context, StartOnBootService.class);       
            context.startService(serviceIntent);   
        }   
    }    
}   

编辑:如果您在谈论设备屏幕开/关,那么您需要注册 <action android:name="android.intent.action.USER_PRESENT" /><action android:name="android.intent.action.SCREEN_ON" />用于在用户在场或屏幕打开时启动您的服务。

关于android - Android开机时启动后台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11168869/

相关文章:

c++ - 只检测 opencv 中较粗的水平直线

java - 单击按钮调用 java 类

ssl - javax.net.ssl.SSLHandshakeException 错误

java - 通过 systemd 运行 Java 时无法识别的选项

android - View 的draw 方法是否可以在Android 的后台线程中运行?

Android背景为可绘制: does not repeat

android - 如何在 CardView 中显示 MapView?

java - 如何在另一个 Activity 的 if-else 语句中使用来自单独 Activity 的 boolean 变量

android - 忽略 Android 中的所有 lint 错误和警告

Symfony2 : disable vendor event listeners