您的位置:首页 > 移动开发 > Android开发

Android 新手从头开始摸索的第一课

2017-06-04 21:58 330 查看
我本身就是一个学计算机专业的,但大家都知道学校基本不会教移动端开发的相关知识,我本身也是慢慢摸索学习,最后现在从事android开发的工作,虽然现在算不上资深,也算是有一定经验了,也想说说看android开始入门的时候应该学习哪些知识。

我们在android studio(eclipse应该没人再用了吧)新建一个项目最先看到的当然是MainActivity了,今天就想说一下activity,activity是android开发肯定接触最多的,每天都要跟activity打交道。可以说activity是android的基础,也是核心。

关于activity,首先要说的就是activity的生命周期,什么是生命周期?(随口说两句:我最开始学习的时候根本不知道生命周期是什么,也不知道怎么用,心想所有代码就写在onCreate里面就行了)。我们对activity的印象就是页面,app上的每一个页面代表这一个activity,基本上可以这么理解(暂时不考虑fragment等)。所以一个页面从渲染开始到跳转到下一个页面,再到在内存中被销毁等这样一个过程叫做生命周期,那我们来看看一个activity的具体生命周期:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
protected void onStart() {
super.onStart();
}

@Override
protected void onResume() {
super.onResume();
}

@Override
protected void onStop() {
super.onStop();
}

@Override
protected void onRestart() {
super.onRestart();
}

@Override
protected void onPause() {
super.onPause();
}

@Override
protected void onDestroy() {
super.onDestroy();
}


基本上activity的生命周期就是以上六个方法,先贴一张经典的图:




由上图来看,简单介绍一下每个方法的触发时机:

启动一个activity的时候调用流程:

onCreate —–> onStart —–> onResume

按了home键: onPause —–> onStop

按了home键,再返回当前activity: onRestart —–> onStart —–> onResume

A activity跳转到B activity : A onPause —–> B onCreate —–> B onStart

—–> B onResume —–> A onStop (当B activity不是透明页时,会执行onStop,反之则不执行)

点back键 : onPause —–> onStop —–> onDestroy

基本上activity的正常生命周期就是这样,能解决初期开发中遇到的大部分问题,还有一些特殊化的生命周期可以放到后面再聊,包括启动模式,横竖屏切换等。

介绍一个出来相对来说比较新的东西:

registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

}

@Override
public void onActivityStarted(Activity activity) {

}

@Override
public void onActivityResumed(Activity activity) {

}

@Override
public void onActivityPaused(Activity activity) {

}

@Override
public void onActivityStopped(Activity activity) {

}

@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

}

@Override
public void onActivityDestroyed(Activity activity) {

}
});


一个app里面基本都有很多activity,以前只能在activity里面监测对应的生命周期,而现在使用registerActivityLifecycleCallbacks()这个方法,只要能拿到application context,就能监测所有activity的生命周期,可以在这里面做一些事情,据我所知,一些数据分析的厂商在监测日活等事件时,就使用了此方法。

总结一下:

onCreate: activity被创建时的回调,应在这里渲染布局,初始化数据。

onStart: activity 正在被创建,还未显示。

onResume: activity创建完成,用户可进行交互。

onPause: activity正在被停止。

onStop: activity 不可见。

onRestart: activity正在重启。

onDestroy: activity被销毁,此时应释放可能会导致内存泄漏的资源。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息