接触android也已经有半年的时间了。看看自己在这些日子里,觉得还是很不满意的。虽然自己也做出了一些东西,当每当看见别人的东西,总觉得自己的是那么的不好,总觉得自己技术上欠缺的太多。一度,我都怀疑自己是不是不适合这个行业。
静下心来,好好思考一番,不是每个人在每个领域都能如鱼得水。付出了才能有回报。于是决定将android自带的demo,好好的去看看。并,有所记。
Make Change No Back!
第一篇:Activity
虽然demo里没有单独的讲这个,但是还是有必要要去看看的。
了解Acrivity,必然是了解他的生命周期。百度谷歌一大把,让我想,也不会想出什么独特的地方来。生命周期,顾名思义,就是从生到死。搜出的一大段中,都是有贴出一张图来讲解他的生命周期,能看明白,但如果我们自己写一个简单的activity,将on_几个方法,打上Log。再运行一下,那么他的生死就再明显不过了。
好吧,讲讲我实验的结果。
public class ActivityLiveActivity extends Activity {
/** Called when the activity is first created. */
private String TAG = "ActivityLive";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate...");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.button);
b.setText("GO");
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent in = new Intent();
in.setClass(ActivityLiveActivity.this, ActivityBack.class);
startActivity(in);
}
});
Log.i(TAG, "onStart...");
super.onStart();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
Log.i(TAG, "onRestart...");
super.onRestart();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
Log.i(TAG, "onPause...");
super.onPause();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
Log.i(TAG, "onStop...");
super.onStop();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
Log.i(TAG, "onDestroy...");
super.onDestroy();
}
}
代码很简单,对于熟悉android的人来说,都已经很白痴了。
我写了两个activity,一个是主activity一个跳转后的activity。在主activity中我将onCreate,onStart,onRestart,onPause,onStop,onDestroy这几个方法都打上了log,他执行到那里,我就知道了。
第一次运行时,执行了onCreate和onStart。看方法的名称也能猜出什么意思了。onCreate,是在创建这个activity时执行;而onStart则是在这个activity呈现在你的面前时执行。为了能够肉眼看得出这个区别,特地在onCreate方法中加了五秒的延迟。
点击按钮,跳转到下一个activity,当前的activity我们看不见他了,他是死了还是被怎么了?我发现执行了onPause和onStop的两个方法。那么这两个方法有什么区别呢?如果安装字体翻译的话就是一个暂停,一个停止。那么这就比较好理解了。但是这两个方法还是有区别的,这里没有实现,就是当我们促发一个dialog提示,覆盖在当前activity上时,是执行onPause。当我们进入另一个activity时,是执行onStop,当前的activity并没有被销毁掉哦,因为我们能看见一个更残忍的方法----onDestroy。
我们从另一个activity再回到这个activity时,执行了onRestart—>onStart,这里就很容易理解了。重新开始。
onDestroy什么时候执行,就是推出这个程序的时候,杀掉进程的时候。
activity的生死基本就是这样了,当然activity相关的知识还有很多,慢慢学习,慢慢充实。