当Android设备开机时如何启动服务?

8
当Android设备启动并且操作系统正在运行时,如何启动一个Service?
1个回答

26

添加到 AndroidManifest.xml 文件中:

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

<service android:name=".YourService" />

<receiver android:name="com.your.package.AutoStart">  
    <intent-filter>  
        <action android:name="android.intent.action.BOOT_COMPLETED" />  
    </intent-filter>  
</receiver>
创建AutoStart.java类:
public class AutoStart extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent) 
    {
        Intent startServiceIntent = new Intent(context, YourService.class);
        context.startService(startServiceIntent);       
    }

}

2
但是,广播接收器是否会在设备完成启动后立即开始接收广播,而无需运行应用程序?如果是的话,广播接收器将在何时注册? - Adham
3
当设备启动时,操作系统会调用您的AutoStart.onReceive()方法。请注意,这可能是在SD卡挂载之前发生的。当您安装apk时,系统将查看您的清单文件,并为您注册应用程序,以便在启动时自动启动。 - ciscogambo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接