【问题标题】:How to start a service when the Android device is turned on?Android设备开机时如何启动服务?
【发布时间】:2011-10-05 23:13:42
【问题描述】:

如何在 Android 设备已打开且操作系统正在运行时启动 Service

【问题讨论】:

    标签: android


    【解决方案1】:

    添加到 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);       
        }
    
    }
    

    【讨论】:

    • 但是,BroadcastReceiver 是否会在设备完成启动后立即开始接收广播,而无需运行应用程序?如果是,广播接收器什么时候注册?
    • 是的,操作系统会在设备启动时调用您的 AutoStart.onReceive() 方法。请注意,这可能是在安装 SD 卡之前。当您安装 apk 时,系统将查看您的清单,并且您的应用程序将在系统中注册,以便您在启动时启动。
    猜你喜欢
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多