Starting background service when Android turns on

后端 未结 2 634
难免孤独
难免孤独 2020-12-30 11:18

I need to have ALWAYS a background service that will synchronize my Android application and a server. I know how to launch it through my application, but when the Android tu

相关标签:
2条回答
  • 2020-12-30 11:42

    use <action android:name="android.intent.action.BOOT_COMPLETED" /> for starting your service when the device turns on.

    In AndroidManifest.xml:

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

    Add permission in your AndroidManifest.xml as:

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

    In code part 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);   
            }   
        }    
    }   
    

    EDIT: if you are talking about device screen on/off then you need to register <action android:name="android.intent.action.USER_PRESENT" /> and <action android:name="android.intent.action.SCREEN_ON" /> for starting your service when user is present or screen is on.

    0 讨论(0)
  • 2020-12-30 11:50
    (Even when the device turns off and then turns on..
    

    The OS broadcasts ACTION_BOOT_COMPLETED when it has finished booting. Your app can ask to receive this notification by requesting permission in your manifest:

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

    http://blog.gregfiumara.com/archives/82

    http://www.androidcompetencycenter.com/2009/06/start-service-at-boot/

    0 讨论(0)
提交回复
热议问题