2

私は自分のアプリケーションでこのチュートリアルに従いました。

私は持っています: タブ 1: Tabgroupactivity1>(startchildactivity)MainActivty>(startchildactivity)ListActivity>(startchildactivity)DetailActivity

同様に、他に 2 つのタブがあります。

問題は、次のアクティビティのいずれかから前のアクティビティに戻ると、(前のアクティビティが) 再開されることです。

私も SINGLE_TOP と SINGLE_TASK で子アクティビティを開始しようとしましたが、これでフローを通過できるのは一度だけです

2回目は次の(次/子)アクティビティを呼び出さない

では、子アクティビティを呼び出して戻る間、現在のアクティビティ状態を維持するにはどうすればよいですか??

私はlistactivtyの次のインテントonclickを使用しています:

Intent myintent = new Intent(getParent(),Second.class);
myintent.putExtra("id",favadapter.getItem(position).id.toString());
TabGroupActivity parentFav = (TabGroupActivity)getParent();
parentFav.startChildActivity("FavActivity", myintent);
4

1 に答える 1

2

実際には Android 2.1 と 2.2 で TabGroupActivity に問題があり、アクティビティがスタックから適切に削除されていないため、毎回インスタンスが再起動します。

その問題を克服するために、SINGLE_TOP と SINGLE_TASK を使用します。別の問題が発生しても、1 つのインスタンスのみが 2 回目ではなく実行されます。

Intent lastIntent = manager.getActivity(lastId).getIntent();
        Window newWindow = manager.startActivity(lastId, lastIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
        setContentView(newWindow.getDecorView());

.startChildActivity("FavActivity", myintent);lastId (アクティビティの開始時に使用される) は複数のインスタンスで同じであるため、すべての lastID インテントを削除して最新のインテントを取得することを意味します。

子アクティビティを 2 回目または複数のインスタンスで実行できるようにするには、動的インテント IDを使用して子アクティビティを起動します。

例えば、

Intent myintent = new Intent(getParent(),Second.class);
myintent.putExtra("id",favadapter.getItem(position).id.toString());
TabGroupActivity parentFav = (TabGroupActivity)getParent();
parentFav.startChildActivity("FavActivity"+System.currentTimemillis(), myintent);
于 2012-03-21T12:39:14.627 に答える