学习Activity的一些注意事项

来源:互联网 发布:软壳冲锋衣 知乎 编辑:程序博客网 时间:2024/05/16 18:12

在Android学习中,我们肯定离不开Activity,下面我说一些关于我在Activity学习中的一些事项把!

1、Activity的生命周期

首先是Activity的生命周期,由下面这张图说明:
这里写图片描述
从图片中我们可以看出Activity的生命周期,首先我们重写一下这些方法,并且在下面我用Log日志打印了一下:

 public static final String TAG = "MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Log.i(TAG, "onCreate: ");    }    @Override    protected void onStart() {        super.onStart();        Log.i(TAG, "onStart: ");    }    @Override    protected void onResume() {        super.onResume();        Log.i(TAG, "onResume: ");    }    @Override    protected void onPause() {        super.onPause();        Log.i(TAG, "onPause: ");    }    @Override    protected void onStop() {        super.onStop();        Log.i(TAG, "onStop: ");    }    @Override    protected void onRestart() {        super.onRestart();        Log.i(TAG, "onRestart: ");    }    @Override    protected void onDestroy() {        super.onDestroy();        Log.i(TAG, "onDestroy: ");    }

1、启动Activity的时候,可以看出打印了3个方法,即Activity完成了创建、启动和运行。
这里写图片描述

2、然后直接进入到主界面或者是切换到另一个应用获得焦点,例如电话打进来,让该应用在后台中继续运行,执行了暂停和停止方法。
这里写图片描述

3、当我们再次启动Activity时,执行了重启、启动、执行方法,跳过了创建的方法。由此可知,当Activity没有被销毁时,不会从新创建新的Activity。
这里写图片描述

4、我们销毁Activity,看到依次执行了暂停、停止、销毁方法。
这里写图片描述

5、当我们重新启动Activity时,会看到这次又执行了创建方法。
这里写图片描述

2、Activity的启动模式
Activity一共有四种启动模式,分别是:

  1. standard:标准启动模式,每一次启动该Activity的时候,都会创建一个新的Activity实例,并放入到任务栈中。
  2. singleTop:只有该任务栈中存在这个Activity实例时,并且该Activity恰巧处于该任务栈的栈顶时,才会调用该Activity实例,否则创建一个新的实例。如果该Activity实例不是处于栈顶,即使任务栈中存在该Activity的实例,也不会被调用,而是重新创建一个新的Activity实例。
  3. singleTask:一个任务栈中只能存在一个该Activity的实例,如果任务栈中存在Activity的实例,系统会将其调用到栈顶,如果不存在则创建一个新的实例
  4. singleInstance 在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。

3、 onCreate中的savedInstanceState
在我们每次创建一个新的Activity时,首先都会重写一个onCreate方法,那么,其中的参数(Bundle stavedInstanceState)的作用是什么?今天我们进行解答。

当Activity被销毁时,我们有时候需要保存当时的状态,这就是savedInstanceState的作用。一般情况下,在Activity的状态处于暂停时,会调用onSaveInstanceState方法,在其中间使用savedInstanceState保存数据,这样在Activity重新启动时,我们可以根据判断onCreate方法中的参数savedInstanceState是否为空,来确认是否要获取数据。例如:Android游戏开发判断状态、阅读小说时判断阅读的状态。我们都知道Bundle存储数据时和Map集合类似,采用key-value键值对的方式存储。具体代码就不写了,看懂就应该能能够写出来了。

1 0
原创粉丝点击