Android应用开发基本知识点汇总

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android应用开发基本知识点汇总

Activity

一生命周期

4种状态 running / paused / stopped / killed

生命周期

Activity启动 onCreate -> onStart -> onResume

点Home返回主界面 onPause -> onStop

再次回到原Activity onRestart -> onStart -> onResume

退出Activity onPause -> onStop -> onDestroy

进程优先级前台/可见/服务/后台/空

二任务栈

三启动模式

standard

singleTop 栈顶复用

singleTask 栈内复用

singeInstance

四scheme跳转协议

服务器可以定制化告诉App跳转哪个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面

Fragment

一第五大组件

为什么是第五大组件 Fragment相对Activity更节省内存,切换更舒适Fragment加载到Activity的两种方式

静态加载xml

动态加载fragmentTransaction.add(id, fragment, “name”); .commit; FragmentPagerAdapter与FragmentStatePagerAdapter

FragmentStatePagerAdapter在切换时回收内存,适合页面较多的情况FragmentPagerAdapter并没有回收内存,只是detach了Activity

二生命周期

onAttach -> onCreate -> onCreateView -> onViewCreated -> onActivityCreated -> onStart -> onResume

-> onPause -> onStop -> onDestroyView -> onDestroy -> onDetach

先创建Activity后创建Fragment,先销毁Fragment后销毁Activity

三Fragment之间的通信

Fragment调用Activity getActivity

Activity调用Fragment 接口回调

Fragment调用Fragment方法findFragmentById

四FragmentManager

replace

add

remove

Service

一应用场景,与Thread区别

Service是什么后台长时间运行,没有用户界面,运行在主线程,不能有耗时操作

Service与Thread区别 Activity难以与Thread交互,尤其当Activity销毁以后

二开启Service的两种方式

StartService

onCreate -> onStartCommand -> onBind -> onDestroy

onStartCommand return START_STICKY;

startService(intent); stopService(intent);

BindService

Broadcast

一广播

定义

场景可在同一个App多个进程间消息传递,可在不同App间消息传递

种类 Normal, System有序广播, Local本地广播

二实现方式

静态注册注册完一直运行

动态注册跟随Activity生命周期

三实现机制

四本地广播 LocalBroadcastManager

由于之前的广播都是全局的,所有应用程序都可以接收到,这样就很容易会引起安全性的问题,比如说我们发送一些携带关键性数据的广播有可能被其他的应用程序截获,或者其他的程序不停地向我们的广播接收器里发送各种垃圾广播。

为了能够简单地解决广播的安全性问题,Android引入了一套本地广播机制,使用这个机制发出的广播只能够在应用程序的内部进行传递,并且广播接收器也只能接收来自应用程序发出的广播,这样所有的安全性问题就都不存在了。

异步消息处理

Handler

子线程发送消息,让主线程更新UI

handler使用方法post(runnable)与sendMessage(message)

handler内存泄漏解决办法:1. handler改为静态内部类 2.handler内部持有Activity外部弱引用

3. mHandler.removeCallback()

HandlerThread

多次创建销毁线程很耗费系统资源

本质上是线程, 继承自Thread,同时自己内部拥有Looper对象,可以进行Looper 循环

串行队列,不能同时多任务处理,需要等待

handlerThread = handler + thread + looper

AsyncTask

本质上封装了线程池和Handler

传入三个参数xxxAsyncTask extends AsyncTask 使用参数,进度参数,结果参数

onPreExecute 在UI线程里执行

doInBackground 返回参数传给onPostExecute,中间publishProgress(i)中的参数传给onProgressUpdate

onProgressUpdate 在UI线程里执行

onPostExecute 在UI线程里执行

xxxAsyncTask.cancel()

并行or串行?为了线程池稳定,系统默认串行,一般建议串行,用xxxAsyncTask.executeOnExecutor执行并行

IntentService

IntentService是串行的

onHandleIntent 执行耗时操作

IntentService内部封装了HandlerThread框架,利用HandlerThread进行异步消息传递

WebView

相关文档
最新文档