Android 从退出的活动调用应用程序

Android 从退出的活动调用应用程序,android,android-intent,Android,Android Intent,在我的应用程序中,当用户单击按钮时,我使用了以下代码退出它。它正在工作。但问题是,当我再次打开应用程序时,它不会从主活动启动。相反,它将从我退出的活动开始 Intent i=new Intent(); i.setAction(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_HOME); FarmerDetails.this.startActivity(i); finish(); 完整代码: public class FarmerDetail

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

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

}
谁能告诉我问题出在哪里以及如何避免


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

在启动此活动B时,在调用finish()setResult(someint)和onActivityResult(如果resultcode==someint)之前,使用callerActivity A的startActivityForResult
完成活动A,依此类推。您需要销毁主活动以从主活动重新启动

在启动此活动B时,在调用finish()setResult(someint)和onActivityResult(如果resultcode==someint)之前,使用调用callerActivity A的startActivityForResult 完成活动A,依此类推。您需要销毁主活动才能从主活动重新启动。

我找到了答案。 当用户按下退出按钮时,它将加载应用程序启动时运行的第一个活动,在我的例子中是“main”

上述代码清除除主活动外的所有活动。main是用户运行程序时引发的第一个活动

然后将此代码放在main的onCreate中,以指示当传递“Exit”消息时,它何时应该自毁

if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();
}
我找到了答案。 当用户按下退出按钮时,它将加载应用程序启动时运行的第一个活动,在我的例子中是“main”

上述代码清除除主活动外的所有活动。main是用户运行程序时引发的第一个活动

然后将此代码放在main的onCreate中,以指示当传递“Exit”消息时,它何时应该自毁

if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();
}

您将在哪里退出应用程序?发布该代码您将从应用程序中退出到哪里?发布代码OHKK clear top适用于同一类型的活动。你需要做的是开始此活动的startActivityforResult。当完成将在mainActivity中接收的setResult时,也完成你的主要活动,直到你的主要活动未完成,它仍保留在堆栈中,当你再次启动应用程序时它将显示以前退出的活动。如果你想在应用程序startohkk clear top上启动主活动,你需要销毁主活动。清除top适用于相同类型的活动。你需要做的是启动此活动的startActivityforResult。在完成将在主活动和finish中接收的setResult时您的主要活动也将显示出来,直到您的主要活动尚未完成,它将一直保留在堆栈中,当您再次启动应用程序时,它将显示以前退出的活动。如果您想在应用程序启动时启动主要活动,您需要销毁主要活动