6、Android应用程序组件之二 Activity交互及权限.pptx_第1页
6、Android应用程序组件之二 Activity交互及权限.pptx_第2页
6、Android应用程序组件之二 Activity交互及权限.pptx_第3页
6、Android应用程序组件之二 Activity交互及权限.pptx_第4页
6、Android应用程序组件之二 Activity交互及权限.pptx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章 应用程序组件(二)Activity交互及权限,本章目标,系统Intent的使用 Android组件权限说明 Activity与进程间关系 Activity间关系和交互 intent携带数据 startActivityForResult PendingIntent使用以及通知服务,系统Intent,系统提供的 使用者只要发出意图,就能得到相应的回应 部分的响应需要权限来控制,需要在androidManifest.xml中申明。 看示例代码:Activity_Intent_Demo 项目:com.great.activity_intent.Intent_Demo1, 演示其中:btnSub

2、mit4的监听部份,通过 Intent 发出意图,调用系统的组件,Intent举例调用拨号程序和音乐选择器,示例一: /拨打电话-调用拨号程序 Uri uri = Uri.parse(tel; Intent intent = new Intent(Intent.ACTION_DIAL, uri); startActivity(intent); 示例二: /音乐选择器 /它使用了Intent.ACTION_GET_CONTENT 和 MIME 类型来查找支持 audio/* 的所有 Data Picker,允许用户选择其中之一 Intent intent = new I

3、ntent(Intent.ACTION_GET_CONTENT); intent.setType(audio/*); /Intent.createChooser:应用选择器,这个方法创建一个 ACTION_CHOOSER Intent startActivity(Intent.createChooser(intent, 选择音乐); 看示例代码:Activity_Intent_Demo 项目: com.great.activity_intent.Intent_Demo1,Intent举例设置壁纸,示例一: /设置壁纸 Intent intent = new Intent(Intent.ACTI

4、ON_SET_WALLPAPER); startActivity(Intent.createChooser(intent, 设置壁纸); 看示例代码:Activity_Intent_Demo 项目: com.great.activity_intent.Intent_Demo1,系统权限android.permission,程序执行需要读取到安全敏感项必需在 androidmanifest.xml中声明相关权限请求 看示例代码:Activity_Intent_Demo 项目: com.great.activity_intent.Permission_Demo1,Android 权限,Activi

5、ty 注册属性中 android:permission 为 Activity 加了一个权限,只有拥有这个权限的应用程序才能够调用到这个 Activity 注册权限: 权限级别: normal (普通级别):默认值,只要申请,就可以使用 dangerous(危险级别):会给程序一个提示或警告 signature(签名级别):只有拥有相同的签名的应用程序才能够申请该权限 signatureOrSystem(系统或签名级别): 其他应用程序可以申请权限,调用 Activity 看示例代码:Activity_Intent_Demo 项目: com.great.activity_intent.Permi

6、ssion_Demo2 Permission_Activity 项目: com.great.permission.Permission_Demo1,PendingIntent,是封装了一个 Intent 以及 Intent 接收者的描述对象,它是一种延迟执行的 Intent, 该 PendingIntent 不会立即被处理,而是交付给其他应用程序,等待一个事件的触发后被送出 PendingIntent 的构造 getActivity(Context context, int reqCode, Intent, int flag) getBroadcast(Context context, int

7、 reqCode, Intent, int flag) getService(Context context, int reqCode, Intent, int flag) PendingIntent 的发送 send 执行 PendingIntent 指定的操作 PendingIntent 的取消 cancel() 只能被 PendingIntent 创造者进行调用,PendingIntent使用,一般与 Notification 或 Alarm 服务配合使用 /通知的构造以及 PendingIntent 的构造 nfcm= (NotificationManager)this.getSyst

8、emService(NOTIFICATION_SERVICE); intent = new Intent(this, Notification_Message.class); intent.putExtra(title, title); intent.putExtra(content, content); pIntent = PendingIntent.getActivity(Notification_Demo1.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); nfc = new Notification(); /通知的发送 nfc.i

9、con = R.drawable.icon; nfc.defaults=Notification.DEFAULT_SOUND/默认通知的声音 nfc.tickerText = 按钮1的通知内容; nfc.setLatestEventInfo(Notification_Demo1.this, strTitle, strContent, pIntent); nfcm.notify(0, nfc); 看示例代码:Views_Demo 项目: com.great.views.Notification_Demo1、com.great.views.Notification_Message,Activity

10、数据存储,当Activity被destroy后,该Activity被重新创建,希望保存原来的现场数据 Bundle类 可序列化的键值对集合 是系统自动生成的,用来临时保存数据即持久化数据到存储地 onSaveInstanceState/onRestoreInstanceState保存或恢复数据 看示例代码:Activity_Intent_Demo 项目: com.great.activity_intent.Bundle_Demo2、com.great.activity_intent.ResultActivity3,Activity之间交互,Intent携带数据 startActivityFor

11、Result方法调用另外一个Activity,示例:Intent携带数据,放置数据 Intent intent = new Intent(); intent.putExtras(),该函数被N次重载,可携带任何类型的数据 获取数据 在上下文环境中(即Activity) Intent intent = getIntent() intent.getCharSequenceExtras(String name) intent.getBundleExtras 清除数据 removeExtras(),示例:startActivityForResult,调用者ActivityFirstA 被调用者Acti

12、vitySecondB,Intent intent = SecondB.this.getIntent(); Bundle bundle = new Bundle(); bundle.putCharSequence(v1, data_content); intent.putExtra(bundle_a, bundle); SecondB.this.setResult(0, intent); SecondB.this.finish();,Intent intent = new Intent(); intent.setClassName(com.great.act, com.great.act.SecondB); intent.putExtra(data, this is a test); startActivityForResult(intent,0);,protected void onActivityResult(int requestCode, int resultCode, Intent data

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论