需要一个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”?
- 如何在后台保活应用不被杀死?