2013-01-31 25 views
1

我试图从某些活动中向我的应用程序添加锁定功能,并且我想确保如果用户按下锁定按钮,用户将无法按下并去任何过去的活动。因此,锁定后用户手机的返回将使用户到达手机的家中。清除所有过去的活动

我试过CLEAR_TOP,但这不是在做伎俩,任何想法为什么?

Button lockButton = (Button) findViewById(R.id.lockButton); 
lockButton.setOnClickListener(new Button.OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = new Intent(AccountListActivity.this, LockActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
     finish(); 
    } 
}); 

回答

1
FLAG_ACTIVITY_CLEAR_TOP  

这将清除只有当你要重新启动的第一个活动,但在你的情况你是推出一个新的活动是.so它不会清除以前的活动堆栈。

你可以做一两件事来实现您的要求 -

创建一个接口,并在所有活动的实施。

然后,当您要启动LockActivity时,在调用Interface的委托之前完成所有活动。

+0

嗨GDG,我可以举一个例子来说明如何在界面中实现一个活动,以及完成所有这些活动的正确方法是什么? (是否会像finish()?) – Quantico

+0

是... simple..like ...类XYZ扩展Activity实现FinishNotifer {公共无效finishActivity(){完成()}} ..如果你想要精确的代码.. 。请告诉我..!! – Jambaaz

+0

让我困惑的事情是,如何从一个特定的监听器调用finishActivity来关闭所有其他活动。 – Quantico