2014-11-05 91 views
0

在我的应用程序中有许多活动,如果用户在任何活动中按下后退按钮,它将进入最终活动,其中有按钮用于评价此应用程序,反馈,Facebook等。当从最后一个活动中按下按钮时,我可以回到之前的活动。同样在清单中,我给所有活动提供了android:noHistory =“true”。Android - 如何恢复以前的活动?

例如,如果用户在A活动中(如果他按下按钮),它将从那里进入最终活动,如果他按下按钮,则应该返回活动A.对于其他活动也是如此。可能吗?

我终于决定只回到第一个活动,当最后一个活动按下按钮时,我使用了下面的代码。

Button first = (Button) findViewById(R.id.first); 
    first.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(last.this,first.class)); 
      finish(); 

     } 
    }); 

因为我删除了android:noHistory =“true”清单中的第一个活动它不断重复。

如何制止这一点。在第一个活动中,我应该在哪里调用finish()

+0

它是一个很好的做法,以回应您收到的答案 – Akhil 2014-11-06 04:50:25

+0

对我的回应感到抱歉。任何我如何解决它。我忘记在活动 – daas12 2014-11-06 16:58:32

回答

0

我想你调用MainActivity的finish()当您启动您的FinalActivity

noHistory = "true"应该给你解决,但你可以通过调用您的MainActivity finish()它推出一个新的活动后,立即得到了类似的行为。然而,最终没有历史更可维护,因为如果您以后再向其中添加另一个startActivity()调用,则最终可能会忘记包含finish()调用。

0

您可以在A活动之上开始最后的活动,然后在其中调用finish()。

实施例:

用户是在“A”活动,他按下后退按钮(我想你重写的onBackPressed方法)。 在那里你开始了最后的活动,如果用户按下一个按钮,你只需调用finish()并且用户被带回到'A'活动。

+0

中致电完成另一个onclicklistner感谢您的帮助 – daas12 2014-11-06 17:00:05

0

从Android电子文件建立

机器人:noHistory 无论是否活动应该从活动堆栈被移除和结束(其光洁度()调用的方法)当用户 从它导航离开和它在屏幕上不再可见 - 如果应该完成,则为“真” ,否则为“假”。缺省值是 “false”。 值为“true”表示活动不会留下历史记录。它不会保留在 任务的活动堆栈中,因此用户将无法返回。

正如你所提到的noHistory标签,有由Android &活动保持不回来一叠尽快得到完成你离开他们开始您的最后一个活动

一种解决方案可以发送发射活动名称,同时启动最终活动。使用这些信息,您可以在需要时启动启动器活动。

e.g

Intent it = new Intent(this,FinalActivity.class); 
it.putExtra("launched_from",this.getClass().getSimpleName()); 
startActivity(it); 

你可以得到reteive它FinalActivity这样

String launched_from= getIntent().getStringExtra("launched_from"); 

现在你知道从哪个活动它得到启动。