1

当用户单击按钮时,我在我的应用程序中使用了以下代码退出它。这是工作。但问题是,当我再次打开应用程序时,它不会从主活动启动。相反,它将从我退出的活动开始。

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();
}

}

谁能告诉问题是什么以及如何避免?

退出后我需要从主活动启动应用程序。

4

2 回答 2

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 是用户运行程序时启动的第一个活动。

然后将此代码放入主程序的 onCreate 中,以在传递“退出”消息时发出自毁信号。

if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();
}
于 2013-01-21T11:50:54.363 回答
0

在启动此 Activity B 时使用 callerActivity A 的 startActivityForResult 并在调用 finish() setResult(someint) 和 A 的 onActivityResult 如果 resultcode==someint 完成活动 A 等等..您需要销毁您的主要活动才能从主要活动重新启动活动

于 2013-01-21T10:46:01.377 回答