Activityのライフサイクルを確認
ActivityのメソッドをOverrideしてToastを表示することで、
ライフサイクルを確認します。
ブラウザが起動された場合、Activityがどの状態になるかを確認するため、
レイアウトにボタンを配置して、ブラウザを起動する処理を実装します。
確認した結果は、下記の通りです。
ブラウザ起動時には、OnPauseまでかと思いましたが、OnStopも呼ばれました。
起動時
OnCreate → OnStart → OnResume
ブラウザ起動
OnPause → OnStop
ブラウザを閉じる
OnRestart → OnStart → OnResume
ホームボタン押下
OnPause → OnStop
Activityを再度起動
OnRestart → OnStart → OnResume
Activityを閉じる
OnPause → OnStop → onDestroy
● Activity
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "OnCreate", Toast.LENGTH_LONG).show();
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
String url = "http://www.google.co.jp";
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
}
});
}
@Override
public void onStart() {
super.onStart();
Toast.makeText(this, "OnStart", Toast.LENGTH_LONG).show();
}
@Override
public void onResume() {
super.onResume();
Toast.makeText(this, "OnResume", Toast.LENGTH_LONG).show();
}
@Override
public void onPause() {
super.onPause();
Toast.makeText(this, "onPause", Toast.LENGTH_LONG).show();
}
@Override
public void onStop() {
super.onStop();
Toast.makeText(this, "onStop", Toast.LENGTH_LONG).show();
}
@Override
public void onRestart() {
super.onRestart();
Toast.makeText(this, "onRestart", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "onDestroy", Toast.LENGTH_LONG).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
|