外部アクティビティ/テントを開始した後、アプリに戻ったときにアプリのメインメニュー/ホーム画面を表示します
-
20-09-2019 - |
質問
私はこのコードを使用して同様の製品を検索するために私のアプリを経由してAndroidマーケットを始めてます:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://market.android.com/search?q=pub:\"some txt\""));
c.startActivity(intent);
これは、同様の製品を示すために正常に動作します。私は時に市場で、アプリを再オープンしている間、私はホームボタンをヒットした場合しかし、それはまだ市場の結果を示しています。私はこのときのメインメニューに行きたい。
解決策はありますか?
解決
申し訳ありませんが、FLAG_ACTIVITY_NO_HISTORY
はおそらく正しい解決策ではありません。それの意味を注意してください - アクティビティはちょうど履歴には表示されません。ユーザーは次のアクティビティに移動することで物事の一つにタップするとこのようにして、再び押すと、彼らは以前のもの(ただし、前のもの)には戻りません。これは、あなたが望むことはほとんどありません。
さらに悪いことに、第二の活動はまだ(それは歴史の中で自分自身を保っている)が存在します。
このような状況のための正しいフラグは FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET にあります。
他のヒント
あなたは意志に FLAG_ACTIVITY_NO_HISTORY
のフラグを追加した場合、それは履歴スタック上に保存されることはありません。ユーザがアプリケーションに戻って移動すると、あなたが市場を立ち上げ前に見えていた最後のアクティビティが表示されます。
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://market.android.com/search?q=pub:\"some txt\""));
c.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
c.startActivity(intent);
の編集の hackbod に正しいです。 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
には何が必要のためのより良いフィット感です。
これは問題ではありません。
あなたはそれが閉じていないマーケットアプリの上に家を押すと、、単に一時停止しました。あなたは再びそれを開いたときに、あなたはそれを再開します。 Androidのアクティビティのライフサイクルを確認します。