有谁知道如何关闭其他活动的活动?例如:我有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.
有没有人知道从其他活动直接关闭活动? 感谢..
答案 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();
}