android 在待机状态下显示某一个activity

来源:互联网 发布:淘宝直播是不是很赚钱 编辑:程序博客网 时间:2024/06/06 15:49

问题描述:有报警信息到来时,需要立即显示提示dialog。程序在系统非待机状态时提示对话框会正常显示,但是当系统处于待机休眠状态时,在受到报警提示信息之后,对话框并不会正常显示出来。

解决方法:在需要显示的那个activity的onCreate方法中写上如下语句

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// if (wakeLock == null) {// PowerManager pm = (PowerManager)// getSystemService(Context.POWER_SERVICE);// wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "my tag");// wakeLock.acquire();// }// this.requestWindowFeature(Window.FEATURE_NO_TITLE);Log.i("INFO", "onCreate() in DismissLock");pm = (PowerManager) getSystemService(Context.POWER_SERVICE);km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);kl = km.newKeyguardLock("INFO");wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK| PowerManager.ACQUIRE_CAUSES_WAKEUP| PowerManager.ON_AFTER_RELEASE, "INFO");wl.acquire(); // wake up the screenkl.disableKeyguard();// dismiss the keyguardthis.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,WindowManager.LayoutParams.FLAG_FULLSCREEN| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);setContentView(R.layout.activity_event_alert);}
在onDestroy方法中写上如下语句

public void onDestroy() {Log.i(TAG, "onDestroy");wl.release();kl.reenableKeyguard();super.onDestroy();}
在manifest中配置权限:

 <uses-permission android:name="android.permission.WAKE_LOCK" />    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
写好以上语句之后基本上已经可以在待机状态下显示了。

但是我遇到的问题是,在报警到来后任然不能正常显示提示对话框。查了好久,终于在stackoverflow上看到了一篇介绍的文章点击打开链接,正如这片文章中所说的我在manifest中将需要显示的那个对话框设置成android:screenOrientation="portrait",于是我将这句话删除,然后程序能够在正常运行。待机状态能够正常提示了。


可参考下这个http://stackoverflow.com/questions/9554950/activity-to-be-displayed-even-when-phone-is-in-locked-mode?answertab=active#tab-top

和http://developer.android.com/reference/android/os/PowerManager.html

原创粉丝点击