Android开发入门 -----Activity的一生 主讲:何广军

Slides:



Advertisements
Similar presentations
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
Advertisements

面向侧面的程序设计 方林博士 本文下载地址:
從 Android SDK 3.0 開始增加了 2 個新的類別: Fragment 與 Action Bar 。 Fragment 提供不同佈局畫面的另一種用法,但 設計更有彈性,更能針對螢幕大小變化,採用 最合適的設計,例如對較大螢幕的平板裝置, 它可以在一個活動的畫面同時顯示 2 個 Fragment.
第13章 繪圖與多媒體 13-1 顯示圖檔-行動相簿 13-2 音樂播放-音樂播放器 13-3 影片播放-視訊播放器
四資二甲 第三週作業 物件導向程式設計.
Part 2 開發Android應用程式的流程
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
類別與物件 Class & Object.
Activity之间的数据传递.
ArrayAdapter & Spinner
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
實驗四:單位轉換程式.
Chapter 13 Android 實戰演練.
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
程式設計實作.
實驗十三:顯示目前經緯度位置.
Ch06 再談選單元件 物件導向系統實務.
使用Android控制Arduino 史先强
7.3 Intent传值.
第10章 App微信分享的实现 倚动实验室.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
第8章 Android内容提供者(ContentProvider)应用
Ch5 Android應用程式的主要組成.
Chapter 7 Android應用元件 Android應用元件可以幫助我們獲得系統資源訊息(ActivityManager)、提供系統服務(Service)、搜尋系統服務(SearchManager)、監聽Intent訊息(Broadcast Receiver)以及資料共享(ContentProvider和ContentResolver)。
Android Intent 建國科技大學 資管系 饒瑞佶 2011/1.
Chapter 6 進階UI設計.
第4章 Android生命周期.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
第4章 Andorid活动与意图 (Activity与Intent)
ANDROID PROGRAMMING2.
Android + Service 建國科技大學 資管系 饒瑞佶.
第5章 Activity与Intent QQ号: QQ群: (Android编程入门) 网络资源:
實驗十四:顯示與控制地圖.
辅导课程六.
第2讲 移动应用开发基础知识(二) 宋婕
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
C#面向对象程序设计 $7 继承和多态性.
第8章 Service解析.
PaPaPa项目架构 By:Listen 我在这.
生活智慧王 樹德科技大學 資訊工程系 指導教授 : 陳毓璋 教授 小組成員: 劉上緯 翁維廷 洪文財.
C/C++/Java 哪些值不是头等程序对象
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
Intent.
Android 开发入门.
Android Application Component
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
$9 泛型基础.
實驗九:延續實驗八, 製作一個完整音樂播放器
Location Based Services - LBS
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java语法基础.
Chapter 18 使用GRASP的对象设计示例.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
第二章 Java基本语法 讲师:复凡.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Android藍芽聊天室 SDK內的範例程式
Android Speech To Text(STT)
辅导课程十二.
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
第2章 Java语言基础.
第9章 BroadcastReceiver的使用
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
加速感測器 靜宜大學資管系 楊子青.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
Part 8 Broadcast Receiver、Service和App Widget
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
Presentation transcript:

Android开发入门 -----Activity的一生 主讲:何广军

学习目标 Activity是什么 如何编写一个Activity 如何启动Activity Activity之间如何交互

Activity是什么 Activity是Android中一种提供可与用户进行交互的界面的应用组件,即布满整个窗口或者悬浮于其他窗口上的交互界面。 2018/11/19

Activity是什么 Android提供了一个Activity基础类, 自定义的Actiivty都需要继承于Activity 相当于web中的Servlet,MVC模型中的控制器(Controller) 通常一个界面对应一个Activity StartActivity.java  start_layout.xml Genymotion http://www.imooc.com/index/search?words=Genymotion public class StartActivity extends Activity 2018/11/19

如何编写Activity 定义Activity实现类 任何Activity都必须重写onCreate()方法。它是Activity的入口点。 主要职责:进行系统初始化(界面、参数等) 界面初始化:必须在onCreate()方法中建立与布局文件的关系。 参数初始化:建议自定义init()方法。 @Override   protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.start_layout); // 界面初始化 init(); // 参数初始化 }

如何编写Activity 配置Activity 每个Activity都需要在AndroidManifest.xml中进行配置 <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".StartActivity" </activity> <activity android:name=".Mp3PlayerActivity"/> <activity android:name=".Mp3ListActivity"/> </application>

如何启动Activity 通过AndroidManifest.xml中配置启动主界面 <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> <activity android:name=".StartActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Mp3PlayerActivity"/> <activity android:name=".Mp3ListActivity"/> </application>

小知识:标题隐藏 方法2:在AndroidManifest.xml中进行配置 方法1:在Activity的onCreate方法中设置 requestWindowFeature(Window.FEATURE_NO_TITLE); <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" > …… </application>

如何启动Activity 通过startActivity()启动其它界面 显式意图启动 通过上下文环境启动 隐式意图启动:需要在AndroidManifest.xml中进行配置,用于复杂类型的启动 Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivity(intent); public static Context context; …… @Override protected void onCreate(Bundle savedInstanceState) { context = this; startActivity(new Intent(context, Mp3ListActivity.class)); }

Activity之间如何交互 数据传递 思路:Intent中提供了一系列putExtra()方法的重载。可以把想要传递的数据暂存在Intent中,启动了另一个活动后,只需要把这些数据再从Intent中取出即可。 1.暂存数据(发送方) 2.接收数据(接收方)         String data = "Hello SecondActivity";           Intent intent = new Intent(FirstActivity.this, SecondActivity.class);           intent.putExtra("extra_data", data);           startActivity(intent); Intent intent = getIntent();         String data = intent.getStringExtra("extra_data");

Activity之间如何交互 需要返回结果的启动 startActivityForResult()方法接收两个参数,第一个参数还是Intent,第二个参数是请求码,用于在之后的回调中判断数据的来源。 1.启动新Activity 2.在被启用Activity中设置返回数据 3.在主Activity中接收返回数据 Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivityForResult(intent, 1); Intent intent = new Intent(); intent.putExtra("data_return", "Hello FirstActivity"); setResult(RESULT_OK, intent); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case 1: if (resultCode == RESULT_OK) { String returnedData = data.getStringExtra("data_return"); Log.d("FirstActivity", returnedData); } break;

Activity之间如何交互 Back键返回数据的接收 在被启用Activity中重写以下方法 @Override public void onBackPressed() { Intent intent = new Intent(); intent.putExtra("data_return", "Hello FirstActivity"); setResult(RESULT_OK, intent); finish(); // 此处不能省 }

如何关闭Activity Back键销毁当前活动 finish()

Activity生命周期 返回栈 Android 是通过一种 Activity 栈的方式来管理 Activity 的

Activity生命周期 活动状态

Activity生命周期 回调方法:系统自动执行

Activity生命周期 回调方法执行时机: 1.当系统载入 Activity 时:OnCreate -> OnStart -> OnResume 2.当前 Activity 失去用户焦点,并且整个 Activity 没有完全隐藏时: OnPause 3.当 Activity 重新获得用户焦点时: OnResume 4.当 Activity 被其他 Activity 完全遮挡时: OnStop 5.当被完全遮挡的 Activity 重新获得用户焦点时:OnRestart -> OnStart -> OnResume 6.当 Activity 完全停掉并且被销毁时: onPause() -> onStop() -> onDestroy() 7.当系统内存不够时:杀死 OnPause 或者 OnStop 的 Activity,并把内存给其他程序,而用户想要返回 Activity 时,系统会重新加载此内存。

小结 Activity 是用户接口程序,是 Android 应用程序的基本功能单元。 Activity 本身是没有界面的。所以Activity类创建了一个窗口,开发人员可以通过setContentView(View)接口把UI放到Activity创建的窗口上。 Activity是单独的,用于处理用户操作。几乎所有的Activity都要和用户打交道。 要掌握好Activity生命周期中各方法调用的时机。

下一节内容 与SD卡的亲密接触