我在我的应用程序中使用以下代码在用户单击按钮时退出该代码。这是工作。但问题是,当我再次打开应用程序时,它不会从主活动中启动。相反,它将从我退出的活动开始。
Intent i=new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
FarmerDetails.this.startActivity(i);
finish();
完整代码:
public class FarmerDetails extends Activity {
Button ok,old,ok1,exit;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.labour);
ok=(Button)findViewById(R.id.button1);
ok1=(Button)findViewById(R.id.button2);
exit=(Button)findViewById(R.id.btn_exit);
exit.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Intent i=new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
FarmerDetails.this.startActivity(i);
finish();
}
});
ok1.setOnClickListener(new OnClickListener() {
public void onClick(final View v) {
Intent next=new Intent(FarmerDetails.this,Fetch.class);
startActivity(next);
}
});
ok.setOnClickListener(new OnClickListener() {
public void onClick(final View v) {
Intent next=new Intent(FarmerDetails.this,newfarmer1.class);
startActivity(next);
}
});
}
public void onDestroy()
{
System.gc();
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
}
}
任何人都可以说出问题是什么以及如何避免?
我需要在退出后从主要活动启动应用程序。
答案 0 :(得分:1)
我找到了答案。 当用户按下退出按钮时,它会加载应用程序启动时运行的第一个Activity,在我的情况下为“main”。
Intent i = new Intent(getApplicationContext(), main.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.putExtra("EXIT", true);
startActivity(i);
以上代码清除除main之外的所有活动。 main是用户运行程序时引发的第一个活动。
然后将此代码放在main的onCreate中,以便在传递'Exit'消息时发出自解压的信号。
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
答案 1 :(得分:0)
使用来自callerActivity A的startActivityForResult,同时启动此Activity B,然后在调用finish()setResult(someint)和onActivityResult之前,如果resultcode == someint 完成活动A等等。你需要破坏你的主要活动才能从主要活动重新启动