我有一个 AlarmManager 设置警报:
Intent intent = new Intent(mContext, AwakeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, PENDING_INTENT_ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(mContext.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + futureTime, pendingIntent);
并且警报按预期工作。当闹钟响起时,我打开了 AwakeActivity。这也按预期工作。在 AwakeActivity 我有:
@Override
public void onCreate(Bundle savedInstanceState)
{
// main
super.onCreate(savedInstanceState);
// inflate
setContentView(R.layout.awake);
Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); //relates to IInputConnectionWrapper issue - but not cause of instant close of app
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
这是我的清单定义:
<activity
android:name=".AwakeActivity"
android:label="@string/activityAwake"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.NoTitleBar"
android:screenOrientation="portrait"
android:launchMode="singleInstance"
android:noHistory="true"
>
</activity>
我遇到的问题是,当 AwakeActivity 启动时它不会保持打开状态。它立即关闭。但是......这只有在手机处于睡眠模式时才会发生,如果我保持屏幕打开并且 AwakeActivity 通过警报打开 - 一切都很好。
另一个但是……这发生在我运行 2.3.4 的 Droid X 而不是我的 Galaxy Nexus 4.2.2 上。我已经有一段时间了,感觉好像我做得很好。
我在这里想念什么?有任何想法吗?