关闭其他活动的活动?

时间:2011-08-03 08:19:28

标签: java android android-activity android-manifest

有谁知道如何关闭其他活动的活动?例如:我有3个活动(活动A,B和C),从活动C,我可以关闭活动A .. 我的活动结构是活动A - >活动B - >活动C. 如何从活动C中关闭活动A?

我试过这段代码:

@Override

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent goToLockScreen= new Intent(this,LockScreenForm.class);
        startActivity(goToLockScreen);
        finish();

但该代码只是从活动B关闭活动A,并且无法直接从活动C关闭活动A.

有没有人知道从其他活动直接关闭活动? 感谢..

5 个答案:

答案 0 :(得分:1)

First Go to parent activity by starting it
@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
switch(Code){
 case A: go to that activity and finsih() this again come back to parent activity
 case B: go to that activity and finsih() this again come back to parent activity
/////and son on
}

答案 1 :(得分:1)

尝试它对我来说很完美

   `public class aActivity extends Activity {

    public static Activity handleToClose;

    @Override
          public void onCreate(Bundle savedInstanceState) {
    .
    .
    .
    handleToClose = this;
    }

    public void onClick(View v)
    {
   Intent i = new Intent(this, act2.class);
   startActivity(i);
     }
    }`

现在你必须完成Activity-B中的Activity-A

活动B或第二活动

    `public class act2 extends Activity {
 public void onCreate(Bundle savedInstanceState) {
      // your code here
          }

     public void onClick(View v)
     {
    aActivity.handleToClose.finish(); //this will finish aActivity (1st Activity)
     finish();//to finish current Activity
     }
      }`

答案 2 :(得分:0)

Intent goToLockScreen= new Intent(this,LockScreenForm.class);
goToLockScreen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

这是一种规定的方式,你应该遵循它..如果你想要一些其他的行为你可以实现它..有很多问题就这个主题提出..参考其他问题......

答案 3 :(得分:0)

如何启动B和C forResult并将结果发送回过去的活动,让A最终调用finish()?像这样:

一个startActivityForResult() - > B startActivityForResult() - > C
C setResult() - > B onActivityResult(){setResult()} - > C onActivityResult(){finish()}

听起来很复杂,但它可以用作解决方法吗?

答案 4 :(得分:0)

试试这个

如果更新活动正在启动另一个安装活动,那么您可能希望在更新活动中覆盖void onActivityResult(int requestCode,int resultCode,Intent intent),提供以下实现。此外,当更新活动启动安装活动时,它应该使用 startActivityForResult(Intent,int),而不是 startActivity(Intent)

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
finish();
}