2

私はアンドロイドが初めてで、これにこだわっています。ログイン アクティビティがあります。ログインをクリックすると、グリッド ビューがあるメイン メニューに移動します。そのため、グリッド ビューから項目を選択すると、次のアクティビティに移動し、「B」と表示され、確認ボタンをクリックするとアクティビティ「B」ホームボタンのあるアクティビティ「c」が表示されます。私は android:theme="@android:style/Theme.Dialog" テーマを使用しています。これは、アクティビティをダイアログとして表示しています。

ホームボタンをクリックすると、メインメニュー、つまりGridviewが表示されます。メインメニューの戻るボタンを押すと、アクティビティ「c」が表示されますが、ログインアクティビティに移動する必要があります。

アクティビティ「B」にfinish()を入れてみましたが、アクティビティ「C」で戻るボタンをクリックすると、現在メインメニュー、つまりグリッドビューを表示しているアクティビティ「B」をcしたいです。また、アクティビティ「c」でインテント フラグ Intent.FLAG_ACTIVITY_CLEAR_TOP を設定しようとしましたが、メイン メニューを表示する前に 1 秒間黒い画面が表示されます。

4

2 に答える 2

0

「ホーム」ボタンをクリックしたら、次のようにグリッド ビュー アクティビティに戻る必要があります。

Intent intent = new Intent(this, MainMenuActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

これにより、タスク内のすべてのアクティビティがクリアされ、メイン メニュー アクティビティに戻ります (ただし、除外されます)。onNewIntent()次に、メイン メニュー アクティビティの既存のインスタンスを呼び出し、その後にonResume().

これで「黒い画面」の問題が解決するはずです。

于 2013-11-03T21:20:41.657 に答える