创建一个可以类似微信电话的界面

需要一个Activity,可以在任何状态弹出来。应用场景一般是: 类似微信来电,闹钟提醒等场景。

  1. 在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);
  1. 监听消息,收到消息的时候启动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”?
  • 如何在后台保活应用不被杀死?

你可能感兴趣的:(创建一个可以类似微信电话的界面)