关闭其他活动的活动?
有谁知道如何关闭其他活动的活动? 例如:我有3个活动(活动A,B和C),从活动C,我可以关闭活动A ..我的活动结构是活动A – >活动B – >活动C如何关闭活动A从活动C?
我试过这段代码:
@Override super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent goToLockScreen= new Intent(this,LockScreenForm.class); startActivity(goToLockScreen); finish();
但该代码只是从活动B关闭活动A,并且不能直接从活动C关闭活动A.
有没有人知道从其他活动直接关闭活动? 谢谢..
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 }
试试它对我来说很完美
`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 } }`
Intent goToLockScreen= new Intent(this,LockScreenForm.class); goToLockScreen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这是一种规定的方式,你应该遵循它..如果你想要一些其他的行为,你可以实现它..关于这个主题有很多问题..请参考其他问题…
如何启动B和C forResult
并将结果发送回forResult
活动让A最终调用finish()
? 喜欢这个:
一个startActivityForResult()
– > B startActivityForResult()
– > C.
C setResult()
– > B onActivityResult(){setResult()}
– > C onActivityResult(){finish()}
听起来很复杂,但也许它可以用作解决方法?
尝试这个
如果更新活动正在启动另一个安装活动,那么您可能希望在更新活动中覆盖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(); }