動態註冊和靜態註冊的區別
阿新 • • 發佈:2018-11-17
動態註冊的廣播會受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