-
Activity的生命周期
Activity Start
package com.vayne.routertest; import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import butterknife.ButterKnife; /** * @Author: chupengda * @CreateDate: 2017/8/6 * @Description: BaseActivity */ public class BaseActivity extends Activity { /**Activity被创建时调用**/ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ButterKnife.bind(this); } /**Activity被创建/从后台重新回到前台时调用**/ @Override protected void onStart() { super.onStart(); } /**从后台重新回到前台时调用**/ @Override protected void onRestart() { super.onRestart(); } /**Activity被创建时被覆盖后/从后台重新回到前台时调用**/ @Override protected void onResume() { super.onResume(); } /**此时Activity is running**/ /**被覆盖到下面或锁屏时调用**/ @Override protected void onPause() { super.onPause(); //有可能在执行完onPause或onStop后,系统资源紧张将Activity杀死,所以有必要在此保存持久数据 } /**退出Activity/跳转到其他Activity时调用**/ @Override protected void onStop() { super.onStop(); } /**退出Activity时调用**/ @Override protected void onDestroy() { super.onDestroy(); } /**此时Activity is shutdown**/ }
其他方法
onSaveInstanceState、onRestoreInstanceState()并不是生命周期方法,它们并不一定会被触发。a. onSaveInstanceState当应用遇到意外情况(如:内存不足)由系统销毁一个Activity时,onSaveInstanceState() 会被调用。但是当用户主动去销毁一个Activity时,例如在应用中按返回键,onSaveInstanceState()就不会被调用。
b.通常onSaveInstanceState()只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。
/** *调用onSaveInstanceState的时机总会发生在onStop之前, *至于调用时机会不会发生在onPause方法之前, *那就说不定了,这个没有固定的顺序可言, *正常情况下一般onSaveInstanceState不会被调用。 */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //被摧毁前缓存一些数据 outState.putString("name", "chupengda"); } private String name; /** *在onStart之后调用 */ @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); //被重新创建后恢复缓存的数据 name = savedInstanceState.getString("name"); }
-
Fragment的生命周期
package com.vayne.routertest; import android.app.Fragment; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * @Author: chupengda * @CreateDate: 2017/8/8 * @Description: */ public class BaseFragment extends Fragment{ /**对应Activity的onCreate**/ /**当Fragment与Activity发生关联时调用**/ @Override public void onAttach(Context context) { super.onAttach(context); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } /**创建该Fragment的视图**/ @Override public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) { /**创建视图的方法 * View view = inflater.inflate(R.layout.fragment_title, container, false); * return view; */ return super.onCreateView(inflater, container, savedInstanceState); } /**宿主Activity创建完毕时调用**/ @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } /**其他周期方法 * onStart() * onResume() * onPasue() * onStop() * 同Activity * Fragment没有onRestart()方法 */ /**对应Activity的onDestroy**/ /**与onCreateView想对应,当该Fragment的视图被移除时调用**/ @Override public void onDestroyView() { super.onDestroyView(); } @Override public void onDestroy() { super.onDestroy(); } /**与onAttach相对应,当Fragment与Activity关联被取消时调用**/ @Override public void onDetach() { super.onDetach(); } }
-
Service的生命周期
主要说明内部调用方法和外部调用方法的关系
-
startServic()
-
startServic() 启用Service服务
-
stopService() 关闭Service服务
-
-
bindService()
-
bindService() 绑定Service服务
-
绑定Service服务() 解绑Service服务
-
-
注意
- startService()和stopService()只能开启和关闭Service,无法操作Service
bindService()和unbindService()可以操作Service
- startService开启的Service,调用者退出后Service仍然存在;
BindService开启的Service,调用者退出后,Service随着调用者销毁
-
Android 中的生命周期
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 懒得处理样式了, 将就着看吧. 官网地址: https://developer.android.com/topic...
- 环信官方Demo源码分析及SDK简单应用 环信官方Demo源码分析及SDK简单应用-ChatDemoUI3.0 环...
- Fragment概述 Fragment是Activity中用户界面的一个行为或者说是一部分。主要是支持大屏幕上动态...
- Android: 五种布局: FrameLayout 、 LinearLayout 、 AbsoluteLayou...