需要一個(gè)Activity锦聊,可以在任何狀態(tài)彈出來歹嘹。應(yīng)用場(chǎng)景一般是: 類似微信來電,鬧鐘提醒等場(chǎng)景孔庭。
- 在Activity里面的 onCreate()里面添加下面的標(biāo)識(shí)
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);
- 監(jiān)聽消息尺上,收到消息的時(shí)候啟動(dòng)Activity
Intent it =newIntent(context, Activity.class);
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //必須要加上這一行,否則不能啟動(dòng)
context.startActivity(it);
因?yàn)槭窃诤笈_(tái)監(jiān)控消息圆到,這時(shí)候context一般是application context怎抛,如果不加 “FLAG_ACTIVITY_NEW_TASK”,會(huì)導(dǎo)致無法啟動(dòng)Activity
好嘞芽淡,這個(gè)Activity就可以在任何界面彈出了马绝。一般可以用在類是微信來電, 鬧鐘提醒等場(chǎng)景挣菲。
這里遺留了兩個(gè)問題:以后單獨(dú)開文章說明
- 為什么要加“FLAG_ACTIVITY_NEW_TASK”富稻?
- 如何在后臺(tái)敝腊睿活應(yīng)用不被殺死?