Android应用开发入门经典学习笔记01--理解Android Activity
来源:互联网 发布:淘宝图片一般像素多少 编辑:程序博客网 时间:2024/06/06 09:23
一个activity会被创建,启动,恢复,暂停和销毁,这些都是生命周期中的事件,每一个事件都可以覆盖Activity类中的一个回调方法,以便在该事件发生时执行某些动作。例如onCreate回调方法。
一个Activity是一个应用程序组件,它向用户提供了一个画面,用户与这个画面的交互能够完成拨打电话,拍照,发送电子邮件或者查看地图之类的事情。每个Activity都有一个窗口,在这个窗口中能够绘制其用户界面。该窗口通常充满整个屏幕,但也可以比屏幕小或者浮动在其他窗口之上。
回退栈是一个存放Activity的栈,每个Activity被启动一次,就会在此栈中存放一次(例如ActivityA,ActivityB,ActivityA,ActivityB,…….)。如果不改变android应用的默认行为,每点击一次back(返回)按钮,会按照栈中列表调用相关Activity。可通过设置flag方法来改变默认行为,例如: intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);
上述flag保证栈中只出现一次,即某个Activity已经在栈中出现了,则不会继续添加。
可不使用startActivity(intent)而替换使用startActivityForResult(intent,
requestCode)及重写onActivityResult(requestCode,resultCode,intent)来用于从另一个Activity中请求数据。显示intent:
Intent intent = new Intent(ActivityB.this, ActivityA.class);
隐式intent:
清单文件
<intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter>
ActivityB程序文件
Intent intent = getIntent(); if (intent != null) { String action = intent.getAction(); String type = intent.getType(); if (Intent.ACTION_SEND.equals(action) && "text/plain".equals(type)) { t.setText(intent.getStringExtra(Intent.EXTRA_TEXT)); } else { //handle intent data from ActivityA } }
现在ActivityB能够处理其他Activity发起的Intent.ACTION_SEND动作并且类型为“plain/text”的intent的处理请求了。
所以,一个intent可以是具体的,比如启动某个特定的Activity;也可是是宽泛的,如请求满足处理特定mime类型的Activity。
不仅可以使用Intent传递数据(利用putExtra)等信息,也可以使用Intent启动其他应用程序中的外部activity类。例如,启动内置的Web浏览器并提供一个URL地址,启动内置的拨号应用并提供一个电话号码,启动内置的地图应用程序并提供一个位置等等。例如启动Web浏览器浏览一个特定的URL。
Uri address = Uri.parse("http://developer.android.com/"); Intent androidDocs = new Intent(Intent.ACTION_VIEW, address); startActivity(androidDocs);
浏览器会启动并进入前台,从而导致原先的调用Activity会暂停并进入后台。当用户结束了浏览器并点击了Back按钮时原先的Activity就会恢复。
对于每一种Activity状态,都有一个对应的回调方法,onCreate(), onPause(), onResume(),
onStop和onDestroy()。 创建清理资源场所可以按照如下方法对照: onStart()<—–>onStop();
onPause()<——>onResume();
- Android应用开发入门经典学习笔记01--理解Android Activity
- Android应用开发入门经典学习笔记07--activity和fragment
- Android应用开发入门经典学习笔记02--理解常见资源
- android应用开发笔记---Activity
- Android应用开发入门经典学习笔记06--动作栏和菜单导航
- Android应用开发入门经典学习笔记08--List、Grid、Gallery以及Flipper
- Android入门开发之深入理解Activity
- Android应用开发学习笔记之启动另外一个Activity
- android开发学习笔记--activity
- 【Android】【笔记】《Android 入门经典》part 6 Activity
- 【Android】【笔记】《Android 入门经典》part 8 Activity
- [Kotlin&Anko开发Android入门学习笔记]-01使用Kotlin创建Activity活动
- android应用开发笔记---Activity和Intent
- android应用开发笔记---Activity生命周期一
- android应用开发笔记---Activity生命周期二
- android应用开发笔记---Activity布局
- android入门开发之Activity学习
- Android学习 ------- Activity理解
- 选择文件后自动上传
- 数据持久化
- leetcode题解c++ | 10. Regular Expression Matching
- 维度建模的基本概念及过程
- 手写代码算法题和智力题
- Android应用开发入门经典学习笔记01--理解Android Activity
- Java中hashCode的作用
- Linux下检查是否安装过某软件包
- C/C++常用头文件及函数汇总
- WINDOWS下APACHE+PHP下载、安装、配置
- Array Partition I
- GreenDao3.x使用笔记
- [Guava源码分析](6)Objects分析
- Clion安装配置教程 [C语言编程for Windows]