3

アラームを設定する 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が開いた場合にのみ発生します-すべて問題ありません。

もう1つは...これは、Galaxy Nexus 4.2.2ではなく、2.3.4を実行している私のDroid Xで発生することです。私はしばらくこれを続けてきましたが、物事を適切に行ったかのように感じています。

ここで何が欠けていますか?何か案は?

4

1 に答える 1