Finish() и жизненный цикл Activity
-
11-12-2019 - |
Вопрос
Я изучаю программирование Android в классе, и у меня есть небольшой вопрос о том, как Finish() вписывается в жизненный цикл Activity.
Когда вы вызываете метод Finish(), какой обратный вызов жизненного цикла запускается?Я предполагаю, что это onPause(), затем onStop() и onDestroy().Это верно?
На самом деле, я просто хочу убедиться, что он не перейдет прямо к onDestroy().
Решение
Вы правы.OnPause, Onstop, OnDestroy.
Здесь - это документы.
Другие советы
На самом деле, я просто хочу убедиться, что он не перейдет прямо к onDestroy().???
НЕТ!
но есть одно исключение когда вызов Finish() приводит к разрыву жизненного цикла активности это происходит, когда вы вызываете Finish() из метода onCreate(), и в этом случае onDestroy() будет вызван немедленно!
http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)
Да, он не будет прыгать в ondestroy () пропустить onspause и onstop.
Также вы можете быть заинтересованы в
Также может быть очень интересно проанализировать такие проблемы и проблемы.Например, вы можете установить точку отключения отборгина в методе
Также некоторые распечатки могут дать вам некоторую полезную информацию.
Вы могли бы, например, написать систему .out.println («Название метода« + »под названием«);В каждом методе вашей деятельности, которую вы думаете, называется.(Перезаписать, например,
Вы многое узнаете о системе Android, выполняя такие маленькие расследования, пока вы развиваете.
Создайте новое приложение для Android и поместите это в основную деятельность. Затем просмотрите окно Logcat (под DDMS Android) для выходов
Создайте вас приложение одинаково - добавьте все onPause, OnStop и т. Д. Методы с выходами на лог.
Как ваша программа работает, вы можете следить за тем, что называется и в какое время.
package com.app.myapp;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
public class MyApp extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
Button exit = new Button(this);
exit.setText("finish");
exit.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
Log.v("MyApp", "finish");
finish();
}
});
layout.addView(exit);
setContentView(layout);
Log.v("MyApp", "onCreate");
}
@Override
protected void onDestroy()
{
// TODO Auto-generated method stub
super.onDestroy();
Log.v("MyApp", "onDestroy");
}
@Override
protected void onPause()
{
// TODO Auto-generated method stub
super.onPause();
Log.v("MyApp", "onPause");
}
@Override
protected void onRestart()
{
// TODO Auto-generated method stub
super.onRestart();
Log.v("MyApp", "onRestart");
}
@Override
protected void onResume()
{
// TODO Auto-generated method stub
super.onResume();
Log.v("MyApp", "onResume");
}
@Override
protected void onStart()
{
// TODO Auto-generated method stub
super.onStart();
Log.v("MyApp", "onStart");
}
@Override
protected void onStop()
{
// TODO Auto-generated method stub
super.onStop();
Log.v("MyApp", "onStop");
}
}
.