1,activity生命周期
app打开时,依次执行onCreate->onStart->OnResume
onCreate 创建时被调用,是activity执行的第一个事件。 我们在创建Activity的时候一般都会重写此方法,并在该方法中执行一些初始化操作。
onStart 表示activity已经启动,但还未在前台,所以还不能和用户交互。
onResume 表示activity 已经在前台,可以和用户交互。
按屏幕的回到桌面按键或者切换到运行中所有任务时
依次分别执行: onPause->onStop
再次回到这个app时
依次执行:onStart->onResume
onRestart();
该方法在Activity重新被启动的时候执行,这时候Activity会从不可见变为可见状态,比较常见的情况是当前Activity 上面打开了一个新的Activity 然后关闭新的Activity 回到原来Activity的时候,便会重新启动Activity执行这个方法。
onPause();
这个方法表示Activity已经失去了与用户交互的能力,表示正在停止,一般来说在onPause()执行之后会立刻回调onstop()方法。但是也有例外,这里举一个栗子,比如,Activity 去启动一个完全透明的Activity时,此时执行了onPause(),但是不会去执行onStart();该方法中一般不要执行比较耗时的操作。因为新的Activity的onResume()方法会在启动它的Activity 的OnPause()执行完成之后才会去执行。
onStop();
这个方法在Activity完全不可见的时候调用。它和onPause()方法的主要区别在于,如果启动的新Activity是一个对话框式的activity,那么,onPause()方法会得到执行,而onStop()方法并不会执行。
所以从activityA跳转到activityB时,要执行的生命周期为:
A onCreate->A onStart->A onResume->A onPause->B onCreate->B onStart->B onResume-> A onStop
横竖屏切换时:
onPause()>onStop()>onDestroy()>onCreate()>onStart()>onResume();
具体可查看此链接:
https://blog.csdn.net/double2hao/article/details/52922663
有关onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)的信息,请查看这篇文章:
activity四种启动方式:
https://yebd1h.smartapps.cn/pages/blog/index?_swebFromHost=baiduboxapp&blogId=80587083&_swebfr=1
intent详细说明:
https://blog.csdn.net/rainbowcode/article/details/119390187
service详细说明:
https://www.jianshu.com/p/6bf03e3cb097
broadCast详细说明:
https://www.jb51.net/article/210309.htm
contentProvider详解:
http://www.360doc.com/content/17/0522/19/3373961_656240867.shtml