Android:打开屏幕并通知用户

时间:2011-07-14 13:19:01

标签: android notifications

我有一些意图。当意图触发时,我想发送一个类似AlertBox的弹出通知并打开屏幕让用户立即看到通知(我的意思是没有显示锁屏)。

如果你曾经使用过HandcentSMS,那么你就明白了我的意思(比如接受消息时的弹出通知)

如何组织这个?任何代码示例?我必须使用哪种权限?

提前谢谢。

3 个答案:

答案 0 :(得分:7)

查看PowerManager

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
//Do whatever you need right here
wl.release(); 

答案 1 :(得分:4)

您的活动在onCreate()实现中应具有以下代码:

@Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
               WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
               WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
               WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

      setContentView( R.layout.myLayout);

      // rest of initialization
}

您使用intent调用活动。这是一个例子:

Intent startIntent = new Intent(context, MyActivity.class);

startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(startIntent);

答案 2 :(得分:0)

也许KeyguardLock可以执行您想要的操作:弹出通知,然后拨打disableKeyguard,然后在用户完成时或超时后重新启用。

安全方面它有点危险,但你去了。