0

アプリが開いたときに通知をポップアップさせたい。ただし、ユーザーが却下した後は、同じアクティビティに戻ったとしても、再び戻ってほしくありません。しかし、アプリが終了し、後で戻ってきたときに、同じダイアログ通知をポップアップ表示したい(ユーザーにログインを促す)。

だから基本的に...

boolean b = true;

if (b == true) {
     // show dialog
     b = false;
} 

var bに状態を保存させたいのですが、終了時にクリアします。

4

3 に答える 3

1

アプリが閉じられても値を保持したくない場合、 sharedpreference を使用する意味があるかどうかはわかりません。それが一種のポイントであるためです。

おそらく、Application クラスでブール値を使用する方が良いでしょうか? アプリが完全にシャットダウンされるまで持続します。

于 2012-10-19T22:47:06.943 に答える
1

android には「アプリ終了」の概念がなく、android ライフサイクルのみがあるため、必要な動作についてより具体的にする必要があります。たとえば、ユーザーがアプリ内のアクティビティを一時停止し、アプリ内のアクティビティを再開しないときはいつでもということですか?

アクティビティが 1 つしかない場合は、アクティビティに状態変数を保持して、一時停止時に false に設定し、再開時に true に設定することができます。

1 つ以上のアクティビティがある場合、フォアグラウンドにアクティビティがなくなったときを追跡するのは苦痛です。たとえば、アクティビティが一時停止するたびに foreground=false を設定し、アクティビティが再開されるたびに foreground=true を設定してから、時間の許容範囲を確認するとします。たとえば、一時停止と再開の間の時間がしきい値よりも長い場合は、バックグラウンドから戻ってきたと想定します。

于 2012-10-19T22:50:35.407 に答える
0

ボタンまたは他のリスナーでアプリからログアウトしない限り、SharedPrefs を使用したくない場合は、確実に変更することはできません。onDestroy() に入れて変数をリセットするか、確実にリセットしたい場合は onPause() に入れることができます

于 2012-10-19T22:50:50.167 に答える