安卓应用总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安卓应用总结
一、Activity类
1、生命周期
Android 定义了一系列与生命周期相关的方法,在我们自己的Activity 中,只是根据需要复写需要的方法,Java 的多态性会保证我们自己的方法被虚拟机调用(即回调方法)。
p ublic class OurActivity extends Activity {
protected void onCreate(Bundle savedInstanceState);
setContentView(yout.main); //设置界面布局
protected void onStart(); //启动
protected void onResume(); //进入界面之前
protected void onPause();
protected void onStop();
protected void onDestroy();
}
onCreate==> onS tart() ==> onResume() ==> running ==> onPause() ==> onStop() ==> onDestroy()
注:在这些生命周期方法中必须调用父类的该方法
2、启动另外一个Activity
Activity.startActivity()方法可以根据传入的参数启动另外一个Activity:
I ntent intent =new Intent(CurrentActivity.this,OtherActivity.class);
startActivity(intent);
注:OtherActivity同样需要在AndroidManifest.xml中定义
3、Activity之间通信
在Android 中,不同的Activity 实例可能运行在一个进程中,也可能运行在不同的进程中。
因此我们需要一种特别的机制帮助我们在Activity 之间传递消息。Android 中通过Intent 对象来表示一条消息,一个Intent 对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个Intent 对象,消息“目的地”是必须的,而内容则是可选项。
Intent的中文意思是目的。在Android中也是"目的"的意思。就是我们要去哪里,从这个activity
要前往另一个Activity就需要用到Intent。
发件人:(CurrentActivity类中)
Intent intent =new Intent(CurrentActivity.this,OtherActivity.class);
// 创建一个带“收件人地址”的 email
Bundle bundle =new Bundle();// 创建 email 内容
bundle.putBoolean("boolean_key", true);// 编写内容
bundle.putString("string_key", "string_value");
intent.putExtra("key", bundle);// 封装 email
startActivity(intent);// 启动新的 Activity
收件人:(OtherActivity类中)
Intent intent =getIntent();// 收取 email
Bundle bundle =intent.getBundleExtra("key");// 打开 email
bundle.getBoolean("boolean_key");// 读取内容
bundle.getString("string_key");
②使用SharedPreferences
SharedPreferences 使用xml 格式为Android 应用提供一种永久的数据存贮方式。对于一个Android 应用,它存贮在文件系统的/data/ data/your_app_package_name/shared_prefs/目录下,可以被处在同一个应用中的所有Activity 访问。Android 提供了相关的API 来处理这些数据而不需要程序员直接操作这些文件或者考虑数据同步问题。
// 写入 SharedPreferences
SharedPreferences preferences = getSharedPreferences("name", MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putBoolean("boolean_key", true);
editor.putString("string_key", "string_value");
mit();
// 读取 SharedPreferences
SharedPreferences preferences = getSharedPreferences("name", MODE_PRIVATE);
preferences.getBoolean("boolean_key", false);
preferences.getString("string_key", "default_value");
4、Activity 的Intent Filter
Intent Filter 描述了一个组件愿意接收什么样的Intent 对象,Android 将其抽象为android.content.IntentFilter 类。在Android 的AndroidManifest.xml 配置文件中可以通过
当程序员使用startActivity(intent) 来启动另外一个Activity 时,如果直接指定intent 了对象的Component 属性,那么Activity Manager 将试图启动其Component 属性指定的Activity。否则Android 将通过Intent 的其它属性从安装在系统中的所有Activity 中查找与之最匹配的一个启动,如果没有找到合适的Activity,应用程序会得到一个系统抛出的异常。
①Action 匹配
Action是一个用户定义的字符串,用于描述一个Android 应用程序组件,一个Intent Filter 可以包含多个Action。在AndroidManifest.xml 的Activity 定义时可以在其
……
如果我们在启动一个Activity 时使用这样的Intent 对象:
Intent intent =new Intent();
intent.setAction("com.zy.myaction");