【发布时间】:2015-03-11 20:42:28
【问题描述】:
我使用ALARM_SERVICE 和以下BroadcastReceiver,以便开始我的OnReceiveActivity:
public class AlarmReciever extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent)
{
try {
Intent i = new Intent();
i.setClassName("com.test", "co.test.OnReceiveActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
i.addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
context.startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}
当我在没有任何指定的WindowManager.LayoutParams 标志的情况下尝试它时(当设备处于唤醒和解锁状态时) - 一切都按预期工作,这意味着onReceive() 被调用,并成功启动OnReceiveActivity。但是,当存在标志时,它不起作用,无论是在设备睡眠和查看时,还是在唤醒和解锁时。
在清单文件中指定了以下权限:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
【问题讨论】:
标签: android android-layout android-activity android-permissions