Как уничтожить активность в Android?

Пока приложение запущено, я нажимаю кнопку HOME, чтобы закрыть приложение. Когда я снова запустил приложение, он возобновится на странице, отображаемой до нажатия на HOME. Я хочу, чтобы приложение начиналось с начального отображения. Я использовал финиш(), чтобы завершить работу, но она не работает. Любые предложения?

Ответы

Ответ 1

Скорее всего, у вас есть несколько экземпляров одного и того же действия. Чтобы устранить подобные проблемы, создайте собственный родительский класс активности, например. MyRootActivity, который будет содержать статический список всех доступных/живых действий:

public class MyRootActivity extends Activity
{
    private static final String TAG=MyRootActivity.class.getName();
    private static ArrayList<Activity> activities=new ArrayList<Activity>();


    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        activities.add(this);
    }

    @Override
    public void onDestroy()
    {
        super.onDestroy();
        activities.remove(this);
    }

    public static void finishAll()
    {
        for(Activity activity:activities)
           activity.finish();
    }
}

Для этого все ваши действия должны быть детьми MyRootActivity.

Затем, когда вы будете уверены, что закрываете приложение - просто позвоните MyRootActivity.finishAll();

Ответ 2

Создайте объект статической активности, действие которого завершается для другого действия и назначает действие в этом случае вы можете добавить дополнительные действия

public class demoActivity extends AppCompatActivity {
    public static Activity self_intent;
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.demo_activity);
            selfintent=this;
    } 

   //Other functions--------------
} 

делать то же самое для других действий

на других

public class finishingActivity extends AppCompatActivity {
        public Button activityCloseBtn;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.finishing_activity);

            activityCloseBtn= (Button) view.findViewById(R.id.activity_close_btn);
            activityCloseBtn.setOnClickListener(new View.OnClickListener() {      
            @Override
            public void onClick(View v) {
               demoActivity.selfintent.finish(); //for finish demoActivityactivity

              //for other activities Activity.selfintent.finish();
               finish();  //for finish current activity
          }
    });

Ответ 3

попробуйте позвонить super.onPause() первым и последующим вызовам finish() внутри вашего onPause() заглушки