3
我有一個AlarmManager設置一個警報: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,這一切纔會發生 - 一切正常。
另一個,但...是這發生在我的Droid X運行2.3.4而不是我的Galaxy Nexus 4.2.2。我一直在這裏呆了一段時間,感覺好像我做得很好。
我在這裏錯過了什麼?有任何想法嗎?
簡單修復,因爲它經常。剛到那裏可能會產生真正的痛苦。我簡單地添加了'<使用權限android:name =「android.permission.DISABLE_KEYGUARD」/>' – dak
噢,很好。很高興你找到答案。 – joelreeves
快速問題。你是否只需要包含此權限,或者是否使用代碼來解除密鑰管理? – joelreeves