私はMainActivityを作成しました。そこには、いくつかのアプリオプションがあり、その後の特定のアクティビティにアクセスするグリッドメニューに表示されます。しかし、アプリケーションが起動すると、AlertDialogを使ってユーザーにログイン詳細を入力させ、グリッドレイアウト定義の直後に展開します。 問題は、グリッドメニューでアイテムを選択するたびに(結果的に新しいアクティビティが)、AlertDialogが再びポップアップすることです。どうすればこれを避けることができますか?MainActivityに戻るたびにAlertDialogが再開されます
さらに、MainActivityの開始(またはログイン後)から開始する必要があるアップロードサービスがありますが、新しいアクティビティが呼び出されるたびに再起動しないでください。私はこの問題が以前のものに関連していると仮定しますが、OptionsMenuを介してstartServiceボタンを使用して一時的に解決することができました。これは永続的な解決策ではありません。
ありがとうございます。しかし
private SharedPreferences prefs;
private String prefName = "MyPref";
int hasLoggedIn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mm_gridmenu);
SharedPreferences prefs = getSharedPreferences(prefName, MODE_PRIVATE);
hasLoggedIn = prefs.getInt("hasLoggedIn", 0);
if (hasLoggedIn == 0) {
showDialog(SHOW_DIALOG);
prefs = getSharedPreferences(prefName , MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("hasLoggedIn", 1);
editor.commit();
}
、hasLoggedIn値を1として保存され、ダイアログは決してポップなかっアップ再びこのよう:
EDIT:次のように私はgetSharedPreferencesを使用しようとしました。私はそれを修正するために戻るボタンを設定しようとしましたが、これはアプリケーションが最小化されないように思われます。そのアクションをボタンに追加する方法はありますか? (私は同様にホームボタンを複製することになる)
@Override
public void onBackPressed() {
prefs = getSharedPreferences(prefName , MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("hasLoggedIn", 0);
editor.commit();
Log.i("hasLoggedIn", hasLoggedIn + "");
return;
}
はまた、私はこのアクションは(上のバックalertDialogを設定)、その後の活動に影響を与えると確信しています。これは有効な代替手段ですか?
コードを貼り付けてください...あなたの問題を解決する方法を予測できません。 – Cristian
@Cristian、コードを見てからご意見はありますか?ありがとう。 – Cath