Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Android开发入门 -----Activity的一生 主讲:何广军"— Presentation transcript:

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

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

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

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

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

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

7 如何启动Activity 通过AndroidManifest.xml中配置启动主界面 <application
<activity android:name=".StartActivity" > <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>

8 小知识:标题隐藏 方法2:在AndroidManifest.xml中进行配置 方法1:在Activity的onCreate方法中设置
requestWindowFeature(Window.FEATURE_NO_TITLE); <application > …… </application>

9 如何启动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)); }

10 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");

11 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;

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

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

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

15 Activity生命周期 活动状态

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

17 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 时,系统会重新加载此内存。

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

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


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

Similar presentations


Ads by Google