1。Android全景图
底层(LInuxKernel):驱动程序
程序包(Libraries):SQLite;
Application framework: 提供手机开发API(Java开发)
Applications:开发的软件
(从全景图上面向下面的层调用)
Android 四大组件
1) Activity: Android软件的界面,包括用户界面的一些组件,用于和用户进行交互。
2) Service:不可见,为整个application提供支持,是实现程序后台运行的解决方案,等程序进程被杀掉时,依赖于该进程的服务也会停止。
3)BroadcastReceiver:用于APP接收(发送)广播消息
4)ContentProvider:为application之间共享数据(来源可以是数据库)
Android 生命周期
onCreate() :活动第一次创建时被调用,完成活动初始化操作
onStart() : 活动由不可见变为可见时调用
onResume() 当Activity准备好和用户进行交互时调用。该活动处在活动栈栈顶
onPause() 系统准备去启动或恢复另一个活动时调用
onStop() 活动完全不可用时调用
onRestart() 活动被销毁前调用
onDestroy(): 整个Activity被销毁:调用finish();系统资源不够用时
onRestart() 活动由停止变为运行时调用
Activity类中的finish()、onDestory()和System.exit(0) 三者的区别:
Activity.finish() 是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存系统只是将最上面的Activity移出了栈,“back”按键的时候,也不会找到这个Activity。
Activity.onDestory() 系统销毁了这个Activity的实例在内存中占据的空间。
System.exit(0) : 杀死进程,活动所占的资源会被释放。
当在一个ACtivity中点击按钮后弹出提示对话框,则只需在AndroidManifest.xml 文件中对应的activity里添加android:theme= “@android:style/Theme.Dialog ”
即可
活动因内存不足被收回导致页面数据丢失
解决方法
用onSaveInstanceState() 该方法可保证活动被收回前调用,该方法携带一个Bundle类型的参数,提供了一系列保存数据的方法,eg putString(键,值)可以保存字符串,获取的时候用getString(键)的方法获得。
Instant也可以结合Bundle一起传递数据。<