0

何らかの理由で、これは私が苦労している単純な問題のように思えます。おそらく、コンピューターを見つめる時間が長すぎるのでしょう。テキストをクリックして、タイマーを使用するかどうか、使用する場合はタイマーの長さを編集できるメニュー (Dialogue PreferenceActivity の形式) を開くことができるコードがあります。私が遭遇した問題は、ボックスをクリックすると、メイン アクティビティ スレッドのコードを続行し、編集メニューで設定を変更する前にアクションを実行することです。

case R.id.main_timer:
    startActivity(new Intent(this, EditSettingsView.class));
    // NEED TO WAIT HERE FOR OVERLYING INTENT TO CLOSE

    boolean editedSettingTimerOn = editedSetting.getBoolean("edit_timer_active", true);
    if(editedSettingTimrOn == true){
        startTimer(editedSetting.getLong("edit_timer_val", 180000);
    }
    break;

アクティビティが開いたときに設定された値ではなく、新しく選択されたブール値を取得するために、アクティビティの EditSettingView.class が終了するのを待ってからブール値を取得する必要があります。onPause() を実装してコードにブレークを作成し、その上にある EditSettingView PreferenceActivity が閉じられたときに戻る方法はありますか?

4

2 に答える 2

0

onPause() を実装してコードにブレークを作成し、その上にある EditSettingView PreferenceActivity が閉じられたときに戻る方法はありますか?

いいえ。Android はブロッキング UI モデルを提供していません。

を実装OnSharedPreferenceChangeListener、それを に添付しSharedPreferences、コメントの後のコードを のonSharedPreferenceChanged()メソッドに移動すると、設定が変更されOnSharedPreferenceChangeListenerたことを検出できます。edit_timer_active

または、このアクティビティのedit_timer_activeチェック コードを挿入します。onResume()

于 2013-09-28T20:40:08.390 に答える