android 在待机状态下显示某一个activity
2013-01-25 12:54
447 查看
问题描述:有报警信息到来时,需要立即显示提示dialog。程序在系统非待机状态时提示对话框会正常显示,但是当系统处于待机休眠状态时,在受到报警提示信息之后,对话框并不会正常显示出来。
解决方法:在需要显示的那个activity的onCreate方法中写上如下语句
但是我遇到的问题是,在报警到来后任然不能正常显示提示对话框。查了好久,终于在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
解决方法:在需要显示的那个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 screen kl.disableKeyguard();// dismiss the keyguard this.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
相关文章推荐
- Android中同一个ImageView中根据状态显示不同图片
- Android下实现一个Activity的全屏显示
- Android Dialog种类大全,让Activity显示在另外一个Activity之上
- Android 在一个Activity的一部分中显示其他Activity
- Android在打开一个新的Activity浏览大图时使用ImageView/PhotoView的时候图片显示在屏幕上部的问题
- Android入门程序(ListView包括一个网络状态显示)
- android导航条上面点击返回按钮返回上一个状态(从activity返回fragment)
- Android 开发 根据activity前台状态显示通知栏信息或对话框(推送/本地service)
- android 一个activity调用另一个activity,窗口化显示
- android 锁屏状态下显示activity
- Android中一个Activity两个ListView的显示错误问题
- android在一个页面显示密码认证对话框进入不finish当前activity
- Android中同一个ImageView中根据状态显示不同图片
- Android通过包名或类名启动APP或者一个Activity 以及 判断APP的运行状态
- Android实现进入一个Activity总是显示软键盘
- 【Android】Activity组件不显示的一个原因
- android中如何实现进入一个界面不做任何动作过10秒钟(有操作从新计时)自动跳转到待机activity,点击待机界面回到原来的界面
- Android 如何在一个Activity中合理地显示多种类型的checkBox
- [android] 显示意图激活另外一个activity
- android Activity窗体显示状态设置