需要一個Activity,可以在任何狀態彈出來。應用場景一般是: 類似微信來電,鬧鐘提醒等場景。
- 在Activity里面的 onCreate()里面添加下面的標識
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
|WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
- 監聽消息,收到消息的時候啟動Activity
Intent it =newIntent(context, Activity.class);
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //必須要加上這一行,否則不能啟動
context.startActivity(it);
因為是在后臺監控消息,這時候context一般是application context,如果不加 “FLAG_ACTIVITY_NEW_TASK”,會導致無法啟動Activity
好嘞,這個Activity就可以在任何界面彈出了。一般可以用在類是微信來電, 鬧鐘提醒等場景。
這里遺留了兩個問題:以后單獨開文章說明
- 為什么要加“FLAG_ACTIVITY_NEW_TASK”?
- 如何在后臺保活應用不被殺死?