用过Android端手机QQ的用户都知道,qq锁屏显示消息弹框,类似这样
通过获取最上层activity的命令
adb shell dumpsys activity | findstr “mFocusedActivity”
可以得到qq消息弹框用的是activity,实现方式也比较简单,
一、新建弹框的activity,如LockActivity ;在LockActivity 中onCreate()中加上锁屏展示
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
二、在AndroidManifest.xml中更改LockActivity 的
android:theme="@style/myTransparent"
style中设置新的样式
<style name="myTransparent">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
此举是设置activity的样式半透明,这样就不会把系统锁屏遮住
最后在service中启动这个activity就可以了