[解決済み] onResume()はonActivityResult()の前に呼び出されるのですか?
2023-06-09 23:42:29
質問
私のアプリはこのようなレイアウトになっています。
- onResume() ユーザーはログインするよう促されます。
- ユーザーがログインしたら、アプリを使い続けることができる 3. ユーザーがいつでもログアウトした場合、再度ログインを促したい
どうすれば実現できますか?
以下は私のMainActivityです。
@Override
protected void onResume(){
super.onResume();
isLoggedIn = prefs.getBoolean("isLoggedIn", false);
if(!isLoggedIn){
showLoginActivity();
}
}
以下は私のLoginActivityです。
@Override
protected void onPostExecute(JSONObject json) {
String authorized = "200";
String unauthorized = "401";
String notfound = "404";
String status = new String();
try {
// Get the messages array
JSONObject response = json.getJSONObject("response");
status = response.getString("status");
if(status.equals(authorized)){
Toast.makeText(getApplicationContext(), "You have been logged into the app!",Toast.LENGTH_SHORT).show();
prefs.edit().putBoolean("isLoggedIn",true);
setResult(RESULT_OK, getIntent());
finish();
}
else if (status.equals(unauthorized)){
Toast.makeText(getApplicationContext(), "The username and password you provided are incorrect!",Toast.LENGTH_SHORT).show();
prefs.edit().putBoolean("isLoggedIn",true);
}
else if(status.equals(notfound)){
Toast.makeText(getApplicationContext(), "Not found",Toast.LENGTH_SHORT).show();
prefs.edit().putBoolean("isLoggedIn",true);
}
} catch (JSONException e) {
System.out.println(e);
} catch (NullPointerException e) {
System.out.println(e);
}
}
}
ユーザーがログインに成功した後
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Toast.makeText(getApplicationContext(), "BOOM SHAKA LAKA!",Toast.LENGTH_SHORT).show();
}
}
問題は、onResume()がonActivityResult()の前に呼ばれるため、ユーザーが正常にログインしたときに、onResume()が最初に呼ばれるため、私のメインアクティビティに通知が来ないことです。
ログインを促すのに最適な場所はどこですか?
どのように解決するのですか?
onActivityResultの呼び出しは、実はonResumeの前に起こります(
のドキュメントを参照してください。
). あなたが実際に
startActivityForResult
で起動し、起動されたアクティビティの結果を
RESULT_OK
に設定してから、アクティビティに値を返すのですか?を置くだけにしてみてください。
Log
ステートメントを
onActivityResult
でその値を記録し、それがヒットすることを確認します。また、このとき
isLoggedIn
の値はどこに設定されていますか?それは、次のように設定する必要があるように思われます。
true
に設定する必要があるように思えますが、明らかにそうなっていません。
Edit
ドキュメント は言う。
アクティビティが再スタートするとき、onResume()の直前にこの呼び出しを受けることになります。
関連
-
[解決済み】Looper.prepare()を呼び出していないスレッド内でハンドラを作成できない。)
-
[解決済み] FragmentでonActivityResultが呼び出されない
-
[解決済み] HttpPostによる画像送信
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] キャンバスに複数行のテキストを描画する
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理
-
[解決済み] onActivityResult()の異常な呼び出し
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] XMLで矩形を描画できますか?
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] onActivityResult() & onResume() [重複]。