1. 程式人生 > >動態註冊和靜態註冊的區別

動態註冊和靜態註冊的區別

動態註冊的廣播會受Activity的生命週期的影響, 當Activity銷燬的時候,廣播就失效了。

  而靜態註冊的廣播,即使Activity銷燬了,仍然可以收到廣播。更牛掰的是即使殺死程序,仍然可以收到廣播。

       動態註冊的廣播要想一直監聽可以註冊到server裡面區監聽

public class UpdateService extends Service{


    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        Log.d("wuyu","UpdateService onCreate ");
        super.onCreate();
        //startForeground(1,new Notification());
        ScreenReceiver sOnBroadcastReciver=new ScreenReceiver();
        IntentFilter recevierFilter=new IntentFilter();
        recevierFilter.addAction(Intent.ACTION_SCREEN_ON);
        recevierFilter.addAction(Intent.ACTION_SCREEN_OFF);
        registerReceiver(sOnBroadcastReciver, recevierFilter);

    }

  在Android中,有一些action是不支援靜態註冊的:

    android.intent.action.SCREEN_ON

    android.intent.action.SCREEN_OFF

    android.intent.action.BATTERY_CHANGED

    android.intent.action.CONFIGURATION_CHANGED

    android.intent.action.TIME_TICK