Android08--Android之基本组件Activity
来源:互联网 发布:淘宝开网店是免费的吗 编辑:程序博客网 时间:2024/06/04 19:06
Android中的四大基本组件分别是:Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器.
今天来学习Activity
/* * 变量在Actvity不能只用static修饰, 在Android中尽量也要避免,最好以一种常量. * Activity他依赖于类存在,类依赖于进程,只有进程被销毁的时候,类中的静态变量才会更新 */
1.首先是生命周期
2.类 对象 Activity的生命周期
一个Activity类的生存周期依赖于整个进程,Activity的生命周期到onDestory结束,一个类的对象的生命周期到finalize结束..
3.横屏与竖屏之间的切换和数据保存
1.横竖屏之间的切换是通过在AndroidManifest.xml中设置activity中的android:screenOrientation
属性值来实现。在切换时,当前的Activity会onDestroy掉.然后显示时再创建.
它的属性:参见:
http://www.cnblogs.com/franksunny/archive/2012/03/21/2410484.html
2.现场保护:
屏幕在横屏和竖屏之间切换时,对于一些控件他是做了现场保护的,也就是说,会保存竖屏上的数据到横屏上去显示,而一些控件则需要自行保护.
1.EditText中只要设置上id,就可以横屏与竖屏之间保存数据并且显示了.
2.TextView如果设置点击时间,改变text的显示,就需要下面这样做了.
首先要实现一个函数:就是存储保护的数据以Bundle传输(现场保护)
@Override protected void onSaveInstanceState(Bundle outState) { // 不可删除,否则本来可以保护的就也没用了 super.onSaveInstanceState(outState); outState.putCharSequence("textView", textView.getText()); }
在Activity创建的时候,将要做了保护的的数据显示:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "onCreate: "); textView = (TextView) findViewById(R.id.main_text); textView.setOnClickListener(this); if (savedInstanceState != null) { CharSequence charSequence = savedInstanceState.getCharSequence("textView"); textView.setText(charSequence); } }
3.为了界面
1.我们需要将横屏时也要写一个xml,我们需要新建一个layout,选择横屏.
2.默认情况下,横屏和竖屏都会显示默认的Activity,在进行显示时,会先选择范围小的(先判断是否有横屏竖屏的布局)
4.finish和Destory的区别
1.finish结束当前Activity,目前只是将正在显示deActivity推到后台,还没有对资源进行相应的回收,当系统没有可用内存到时候,会按照优先级,释放部分应用,会在适合的时间执行到onDstory方法中.
2.onDstory方法执行之后就代表整个Actvity 的声明周期完了,会对资源进行回收.
5.退出(返回键的设置)
在我们使用Intent进行跳转时,返回键的默认设置是回到上一个Activity.
@Override public void onBackPressed() { // 禁用返回按钮// super.onBackPressed(); // SystemClock.uptimeMillis()取当前时间,安卓这样使用,System.currentTimeMillis()一样,前者取到的东西会多一些. // 和上一次点击时间相比 if (SystemClock.uptimeMillis() - time < 3000) { /* // 退出当前activity finish(); // 退出当前应用// finishAffinity();,版本太高 // 兼容的 ActivityCompat.finishAffinity(this);*/ /* // 退出整个虚拟机,导致整个应用以为退出,会做一个恢复 System.exit(0);*/ // 杀死应用,也会做恢复. Process.killProcess(Process.myPid()); } else { Toast.makeText(Other_Activity.this, "再点击一次退出", Toast.LENGTH_SHORT).show(); time = SystemClock.uptimeMillis(); }
- Android08--Android之基本组件Activity
- Android08--Android之Activity的四种启动模式
- Android应用程序的基本组件之Activity
- Android组件基本介绍之Activity
- 学习笔记:Android基本组件之Activity
- Android四大基本组件之 Activity
- Android08--Android之Intent的七大属性
- Android基本组件-Activity
- 四大基本组件之Activity
- 4.Android四大组件之Activity基本用法
- android组件之Activity
- Android之Activity组件
- android组件之Activity
- android组件之Activity
- Android之Activity组件
- Android组件之Activity
- Android组件之Activity
- Android组件之Activity
- 什么才是真正的 RESTful 架构?
- 嘉华线走向及时刻表
- Android手机视频监控系统
- 基础软件国产化闲谈
- Bellman-Ford——解决负权边(求某点到所有点的最短距离)
- Android08--Android之基本组件Activity
- 这就是搜索引擎(三)——搜索引擎优化
- CONCAT()函数 和 GROUP_CONCAT()函数
- 1057 津津的储蓄计划
- 编程语言的排名取决于应用场景和主要公司的需求
- Android0828(一)
- VirtualBox主机与虚拟机文件夹共享
- Viewpager自动轮播,可修改滑动速度
- 06 获取Activity的栈管理器