我已经为我的应用程序遵循了this教程。

我有:
选项卡1:Tabgroupactivity1>(startchildactivity)MainActivty>(startchildactivity)ListActivity>(startchildactivity)DetailActivity

同样,我还有另外两个标签。

问题是,当我从以下任何一项活动返回到上一个活动时,它(上一个活动)将重新启动。

我也曾经尝试过使用SINGLE_TOP和SINGLE_TASK进行startchild活动,但是只有在此之后,我才能完成流程

第二次它不调用后续(下一个/子级)活动

那么,当它要求子活动并返回时,如何保持当前的活动状态?

我正在使用以下意图onlistactivty onclick:

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

最佳答案

实际上TabGroupActivity在android 2.1和2.2中有问题,未正确从堆栈中删除的活动会导致我们的实例每次重新启动。

为了解决该问题,我们使用SINGLE_TOP和SINGLE_TASK,即使它引起另一个问题,也只有一个实例第二次不运行,因为在子进程完成时我们这样做,

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


表示它删除所有lastID意图并带来最新的意图,因为您的lastId(在启动活动.startChildActivity("FavActivity", myintent);时使用)对于多个实例是相同的。

为了允许您的子活动再次运行或针对多个实例运行,请使用动态意图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);

07-27 18:50