第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并

Size: px
Start display at page:

Download "第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并"

Transcription

1 第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并接收广播中的消息就需要使用 BroadcastReceiver( 广播接收者 ), 广播接收者是 Android 四大组件之一, 通过广播接收者可以监听系统中的广播消息, 并实现在不同组件之间的通信, 本章将针对广播接收者进行详细讲解 6.1 广播接收者简介 在现实生活中, 大多数人都会收听广播, 例如出租车司机会收听实时路况广播, 来关注路面拥堵情况 同样在 Android 系统中也内置了很多广播, 例如手机开机完成后会发送一条广播, 电池电量不足时也会发送一条广播等 为了监听这些广播事件,Android 系统提供了一个 BroadcastReceiver 组件, 该组件可以监听来自系统或者应用程序的广播 接下来通过一个图例来展示广播的发送与接收过程, 如图 6-1 所示 图 6-1 广播接收者在图 6-1 中, 当 Android 系统产生一个广播事件时, 可以有多个对应的 BroadcastReceiver 接收并进行处理, 这些广播接收者只需要在清单文件或者代码中进行注册并指定要接收的广播事件, 然后创建一个类继承自 BroadcastReceiver 类, 重写 onreceive() 方法, 在方法中进行处理广播事件即可 6.2 广播接收者入门 广播接收者的创建 若想接收程序或系统发出的广播, 首先需要创建广播接收者 广播接收者的创建过程与 Activity 类似, 在程序包名处点击右键选择 New Other Broadcast Receiver 选项, 在弹出窗口 中输入广播接收者的名称, 如图 6-2 所示 1

2 图 6-2 创建广播接收者在图 6-2 中, Class Name 输入框中输入广播接收者名称, 下方 Exported 表示是否接收当前程序之外的广播, Enabled 表示广播接收者是否可以由系统实例化, 两个选项默认勾选即可, 选项内容会在清单文件中显示 然后点击 Finish 按钮, 广播接收者便创建完成, 此时打开 MyReceiver.java, 具体代码如 文件 6-1 所示 文件 6-1 MyReceiver.java 1 package cn.itcast.broadcastreceiver; 2 import android.content.broadcastreceiver; 3 import android.content.context; 4 import android.content.intent; 5 public class MyReceiver extends BroadcastReceiver { 6 public MyReceiver() { 7 } 9 public void onreceive(context context, Intent intent) { 10 // TODO: This method is called when the BroadcastReceiver is receiving 11 // an Intent broadcast. 12 throw new UnsupportedOperationException("Not yet implemented"); 13 } 14 } 在上述代码中, 创建的 MyReceiver 继承自 BroadcastReceiver, 默认包含一个构造方法和一个 onreceive() 方法 其中 onreceive() 方法用于实现广播接收者的相关操作, 由于该方法尚未实现, 因此会抛出异常, 在实现该方法时删除异常即可 广播接收者创建完成后,Android Studio 工具会自动在清单文件中注册广播接收者 注册代码只需了解即可, 不需要手动添加, 具体代码如 文件 6-2 所示 文件 6-2 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="cn.itcast.broadcastreceiver" > 2

3 <application > <receiver android:name=".myreceiver" android:enabled="true" android:exported="true" > </application> </manifest> 上述广播接收者的注册方式是静态注册, 这种静态注册的特点是无论应用程序是否处于运行状 态, 广播接收者都会对程序进行监听 多学一招 : 广播接收者的动态注册 广播接收者共有两种注册方式, 一种是静态注册, 一种是动态注册 静态注册是创建一个广播 接收者, 并在清单文件中完成注册 动态注册是创建一个广播接收者, 并在 Activity 中通过代码进 行注册 动态注册的广播接收者的生命周期依赖于注册广播的组件, 例如在 Activity 中注册了广播 接收者, 当 Activity 销毁时, 广播接收者也随之被移除 接下来通过一段代码来演示广播接收者的 动态注册, 示例代码如下 protected void oncreate(bundle savedinstancestate) { } super.oncreate(savedinstancestate); // 实例化广播接收者 MyReceiver receiver = new MyReceiver(); // 实例化过滤器并设置要过滤的广播 String action = "android.provider.telephony.sms_received"; IntentFilter intentfilter = new IntentFilter(action); // 注册广播 protected void ondestroy() { } super.ondestroy(); // 当 Activity 销毁时取消注册 BroadcastReceiver unregisterreceiver(receiver); 在上述代码中, 首先创建广播接收者实例, 其中 MyReceiver 是自创建的广播接收者 然后实例 化过滤器, 设置要过滤的广播 最后通过 registerreceiver() 方法进行注册, 其中参数 intentfilter 是接 收监听的广播事件 最后在 ondestroy() 方法中, 通过 unregisterreceiver() 方法将其销毁 实战演练 拦截史迪仔电话 前面小节中, 介绍了什么是广播接收者以及广播接收者的创建 为了让初学者更好的理解广播 接收者的工作原理, 接下来通过一个的拦截外拨电话的案例来演示广播接收者的使用, 具体步骤如 下 : 3

4 1. 创建程序 创建一个名为 InterceptCall 的应用程序, 指定包名为 cn.itcast.interceptcall, 设计用户交互界面, 预览效果如图 6-3 所示 图 6-3 输入拦截号码界面图 6-3 对应的布局代码如 文件 6-3 所示 文件 6-3 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="15dp" tools:context=".mainactivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint=" 请输入拦截号码 "/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerhorizontal="true" android:background="#acd6ff" android:onclick="click" android:paddingleft="5dp" android:paddingright="5dp" android:text=" 保存拦截号码 " 4

5 android:textsize="16sp"/> </RelativeLayout> 上述代码中, 定义了一个相对布局, 在该布局中放置两个控件, 分别是 EditText 和 Button, 用于输入和保存拦截号码, 同时在 Button 标签中添加 onclick 属性为按钮添加点击事件 2. 编写界面交互代码在 MainActivity 中编写界面交互的代码, 将要拦截的号码保存到 SharedPreferences 对象中, 具体代码如 文件 6-4 所示 文件 6-4 MainActivity.java 1 package cn.itcast.interceptcall; 2 import android.content.sharedpreferences; 3 import android.os.bundle; 4 import android.support.v7.app.appcompatactivity; 5 import android.view.view; 6 import android.widget.edittext; 7 import android.widget.toast; 8 public class MainActivity extends AppCompatActivity { 9 private EditText et_ipnumber; 10 private SharedPreferences sp; 12 protected void oncreate(bundle savedinstancestate) { 13 super.oncreate(savedinstancestate); 14 setcontentview(r.layout.activity_main); 15 et_ipnumber = (EditText) findviewbyid(r.id.et_ipnumber); 16 // 创建 SharedPreferences 对象 17 sp = getsharedpreferences("config", MODE_PRIVATE); 18 } 19 public void click(view view) { 20 // 获取用户输入的拦截号码 21 String number = et_ipnumber.gettext().tostring().trim(); 22 // 创建 Editor 对象, 保存用户输入的拦截号码 23 SharedPreferences.Editor editor = sp.edit(); 24 editor.putstring("number", number); 25 editor.commit(); 26 Toast.makeText(this, " 保存成功 ", Toast.LENGTH_SHORT).show(); 27 } 28 } 在上述代码中, 分别初始化了 EditText 对象和 SharedPreferences 对象, 然后创建 click() 方法实现点击事件, 当用户点击 保存拦截号码 按钮时, 就会将用户输入的拦截号码保存到 SharedPreferences 对象中 3. 监听广播事件编写完界面交互代码之后, 接下来创建一个广播接收者 OutCallReceiver, 用于接收外拨电话的广播, 具体代码如 文件 6-5 所示 文件 6-5 OutCallReceiver.java 5

6 1 package cn.itcast.interceptcall; 2 import android.content.broadcastreceiver; 3 import android.content.context; 4 import android.content.intent; 5 import android.content.sharedpreferences; 6 public class OutCallReceiver extends BroadcastReceiver { 8 public void onreceive(context context, Intent intent) { 9 // 获取拨打的电话号码 10 String outcallnumber = getresultdata(); 11 // 创建 SharedPreferences 对象, 获取拦截号码 12 SharedPreferences sp = 13 context.getsharedpreferences("config",context.mode_private); 14 String number =sp.getstring("number",""); 15 // 判断是否是拦截电话号码 16 if(outcallnumber.equals(number)){ 17 // 清除电话 18 setresultdata(null); 19 } 20 } 21 } 在上述代码中, 第 10 行 getresultdata() 方法可以获得外拨的电话号码, 第 行可以获得保存在 SharedPreferences 中的拦截号码 然后判断用户外拨号码与拦截号码是否一致, 如果一致则调用第 18 行 setresultdata() 方法, 该方法参数为 null 时, 系统便会关闭电话功能, 如果不一致则电话正常拨出 当输入完电话号码拨打电话时,Android 系统会发送一个广播 (android.intent.action.new_outgoing_call) 给电话拨号器的广播接收者, 因此, 想要拦截生效, 就需要在 AndroidManifast.xml 文件中设置拦截器的广播接收者, 由于外拨电话涉及到权限问题, 所以还需要在清单文件中添加相应的权限, 具体代码如 文件 6-6 所示 文件 6-6 AndroidManifast.xml <application > <!-- 注册广播接收者 --> <receiver android:name=".outcallreceiver"> <intent-filter> <action android:name="android.intent.action.new_outgoing_call"/> </intent-filter> </application> <!-- 设置权限 --> <uses-permission android:name="android.permission.process_outgoing_calls"/> 在上述代码中, 对 OutCallReceiver 进行了注册并且设置了监听系统拨打电话的广播 android.intent.action.new_outgoing_call, 这样当手机向外拨打电话时,OutCallReceiver 就能在系统电话拨号器的广播接收者接收到电话号码之前将其清空 至此, 电话拦截的程序就完成了, 下面就可以对电话拦截程序进行测试 6

7 4. 运行程序 首先将拦截号码设置为 , 然后点击 保存拦截号码 按钮, 此时会弹出 Toast 显示 设置成功, 运行结果如图 6-4 所示 图 6-4 运行结果 5. 测试拦截在模拟器中输入号码 , 然后点击拨号按钮拨打电话, 此时会关闭电话功能返回主界面, 运行结果如图 6-5 所示 图 6-5 电话拦截测试从图 6-5 可以看出, 当拨出号码 时, 电话功能自动关闭并返回主界面中, 说明本程序的广播接收者在电话拨号器的广播接收者之前接收到了外拨电话的广播, 并针对这个广播进行了拦截号码的操作 6.3 自定义广播 在上面的小节中, 通过电话拦截的案例说明了什么是广播接收者, 以及如何接收系统的广播 在实际开发中, 有时为了满足一些特殊的需求还需要自定义广播, 本小节将为大家讲解如何自定义 广播 7

8 6.3.1 自定义广播的发送与接收 Android 系统中自定义了很多广播类型, 只需要创建对应的广播接收者接收即可 当系统提供的 广播不能满足实际需求时, 可以自定义广播, 同时需要编写对应的广播接收者 接下来通过一个图 例的方式来演示自定义广播的发送与接收过程, 如图 6-6 所示 图 6-6 广播的发送与接收从图 6-6 可以看出, 当自定义广播发送消息时, 会储存到公共消息区中, 而公共消息区中如果存在对应的广播接收者, 就会及时的接收这条信息 因此, 利用广播的这种机制可以处理程序中的特殊功能 实战演练 拯救史迪仔 上面小节中, 讲解了自定义广播的发送与接收的原理, 为了让初学者更好的掌握, 接下来通过一个案例来演示自定义广播的发送与接收过程, 具体步骤如下 : 1. 创建程序创建一个名为 ForHelp 的应用程序, 指定包名为 cn.itcast.forhelp, 设计用户交互界面, 预览效果如图 6-7 所示 图 6-7 发送求救广播界面图 6-7 对应的布局代码如 文件 6-7 所示 文件 6-7 activity_main.xml <?xml version="1.0" encoding="utf-8"?> 8

9 <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerhorizontal="true" android:onclick="send" android:layout_margintop="50dp" android:text=" 发送求救广播 " android:paddingleft="5dp" android:paddingright="5dp" android:background="#ffd2d2" android:textsize="20sp"/> </RelativeLayout> 在上述代码中, 定义了一个 Button 按钮, 并注册了点击事件 send, 点击按钮就会发送一条广播消息 2. 编写界面交互代码接下来编写 MainActivity 类, 实现按钮的点击事件, 并在该事件中完成广播的发送, 具体代码如 文件 6-8 所示 文件 6-8 MainActivity.java 1 package cn.itcast.forhelp; 2 import android.content.intent; 3 import android.os.bundle; 4 import android.support.v7.app.appcompatactivity; 5 import android.view.view; 6 public class MainActivity extends AppCompatActivity { 8 protected void oncreate(bundle savedinstancestate) { 9 super.oncreate(savedinstancestate); 10 setcontentview(r.layout.activity_main); 11 } 12 public void send(view view){ 13 Intent intent = new Intent(); 14 // 定义广播的事件类型 15 intent.setaction("help_stitch"); 16 // 发送广播 17 sendbroadcast(intent); 18 } 19 } 9

10 在上述代码中, 通过 send() 方法完成广播发送 首先创建一个 Intent 对象, 通过 setaction() 方法定义广播的类型, 最后通过 sendbroadcast() 方法将广播发送出去 3. 添加广播接收者接下来创建一个广播接收者 MyBroadcastReceiver, 用于接收自定义广播事件, 具体代码如 文件 6-9 下所示 文件 6-9 MyBroadcastReceiver.java 1 package cn.itcast.forhelp; 2 import android.content.broadcastreceiver; 3 import android.content.context; 4 import android.content.intent; 5 import android.util.log; 6 public class MyBroadcastReceiver extends BroadcastReceiver { 8 public void onreceive(context context, Intent intent) { 9 Log.i("MyBroadcastReceiver", " 自定义的广播接收者, 接收到了求救广播事件 "); 10 Log.i("MyBroadcastReceiver",intent.getAction()); 11 } 12 } 在上述代码中, onreceive() 方法中定义了两个 Log, 当 MyBroadcastReceiver 接收到广播时就会在 LogCat 中输出这些信息 接下来需要在清单文件中设置自定义广播接收者的事件类型, 具体代码如 文件 6-10 下所示 文件 6-10 AndroidManifast.xml <receiver android:name=".mybroadcastreceiver"> <intent-filter> <action android:name="help_stitch"/> </intent-filter> 4. 运行程序运行程序, 点击 发送求救广播 按钮, 发送一个自定义广播, 此时观察 LogCat 窗口中打印的提示信息, 运行结果如图 6-8 所示 图 6-8 接收到了自定义的广播从图 6-8 可以看出, 自定义的广播接收者 MyBroadcastReceiver 成功的接收了电台发送的广播消息, 并在 LogCat 中输出了对应的广播事件 需要注意的是, 自定义广播的类型与广播接收者在清单文件中配置的类型要一致, 否则无法接收到广播 10

11 6.4 广播的类型 有序广播和无序广播 Android 系统提供了两种广播类型, 有序广播和无序广播 开发者可根据需求为程序设置不同的广播类型, 接下来将针对这两种类型分别进行讲解 1. 无序广播无序广播是完全异步执行的, 发送广播时, 所有监听这个广播的广播接收器都会接收到此广播消息, 但接收和执行的顺序不确定 无序广播的效率比较高, 但无法被拦截, 工作流程如图 6-9 所示 图 6-9 无序广播从图 6-9 可以看出, 当发送一条广播时, 所有的广播接收者都会接收 2. 有序广播有序广播是按照接收者声明的优先级别被依次接收, 发送广播时, 只会有一个广播接收者能够接收此消息, 当在此广播接收者中逻辑执行完毕之后, 广播才会继续传递 相比无序广播的效率较低, 但此类型是有先后顺序的, 并可被拦截, 工作流程如图 6-10 所示 图 6-10 有序广播 从图 6-10 可以看出, 当有序广播发送消息时, 优先级最高的广播接收者最先接收, 优先级最低 的最后接收 如果优先级最高的广播接收者将广播终止, 那么广播将不再传递 多学一招 : 广播接收者优先级 在清单文件注册广播接收者时, 可在 <intent-filter> 标签中使用 priority 属性设置优先级别, 属性 值越大优先级越高, 例如 :<intent-filter android:priority="100"> 如果两个广播接收者的优先级相同, 则先注册的广播接收者优先级高 两个程序监听了同一个 广播事件, 同时都设置了优先级属性, 则先安装的程序优先接收 实战演练 拦截史迪仔广播 在前面小节中, 通过对比两种广播的工作流程, 让初学者了解有序广播和无序广播的不同 之前小节案例都是通过无序广播讲解的, 接下来创建一个拦截有序广播的案例, 便于更深刻的认识有序广播, 具体步骤如下 : 1. 创建程序 11

12 创建一个名为 OrderedBroadcast 的应用程序, 指定包名为 cn.itcast.orderedbroadcast, 设计用户交 互界面, 预览效果如图 6-11 所示 图 6-11 发送有序广播界面图 6-11 对应的布局代码如 文件 6-11 所示 文件 6-11 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerhorizontal="true" android:layout_margintop="80dp" android:onclick="send" android:text=" 发送有序广播 " android:paddingleft="5dp" android:paddingright="5dp" android:background="#fbfbff" android:textsize="20sp"/> </RelativeLayout> 2. 编写界面交互代码接下来编写 MainActivity 类, 用于发送有序广播, 具体代码如 文件 6-12 所示 文件 6-12 MainActivity.java 1 package cn.itcast.orderedbroadcast; 12

13 2 import android.content.intent; 3 import android.os.bundle; 4 import android.support.v7.app.appcompatactivity; 5 import android.view.view; 6 public class MainActivity extends AppCompatActivity { 8 protected void oncreate(bundle savedinstancestate) { 9 super.oncreate(savedinstancestate); 10 setcontentview(r.layout.activity_main); 11 } 12 public void send(view view){ 13 Intent intent = new Intent(); 14 // 定义广播的事件类型 15 intent.setaction("intercept_stitch"); 16 // 发送广播 17 sendorderedbroadcast(intent,null); 18 } 19 } 在上述代码中, 通过 sendorderedbroadcast() 方法发送一条有序广播, 此方法中接收 2 个参数, 第 1 个参数是意图对象, 设置发送的广播事件 Intercept_Stitch 第 2 个参数指定接收者的权限, 此案例不关心权限问题, 填写为 null 即可 3. 添加广播接收者接下来需要创建三个广播接收者类, 分别以 MyBroadcastReceiverOne MyBroadcastReceiverTwo MyBroadcastReceiverThree 命名 然后在不同的广播接收者中, 打印不同的 LogCat 信息, 具体代码如 文件 6-13 所示 文件 6-13 MyBroadcastReceiverOne.java 1 package cn.itcast.orderedbroadcast; 2 import android.content.broadcastreceiver; 3 import android.content.context; 4 import android.content.intent; 5 import android.util.log; 6 public class MyBroadcastReceiverOne extends BroadcastReceiver { 8 public void onreceive(context context, Intent intent) { 9 Log.i("MyBroadcastReceiverOne", " 自定义的广播接收者 One, 接收到了广播事件 "); 10 } 11 } 其他两个广播接收者按照 MyBroadcastReceiverOne 代码编写, 修改广播接收者编号以及 Log 信息即可 创建完成之后, 需要在清单文件中分别设置广播接收者的事件类型及不同的优先级, 具体代码如 文件 6-14 所示 文件 6-14 AndroidManifast.xml <receiver android:name=".mybroadcastreceiverone"> <intent-filter android:priority="1000"> <action android:name="intercept_stitch"/> 13

14 </intent-filter> <receiver android:name=".mybroadcastreceivertwo"> <intent-filter android:priority="200"> <action android:name="intercept_stitch"/> </intent-filter> <receiver android:name=".mybroadcastreceiverthree"> <intent-filter android:priority="600"> <action android:name="intercept_stitch"/> </intent-filter> 在上述代码中, 通过 android:priority 属性指定接收广播事件的优先级别, 参数最高的广播接收者最先接收 4. 运行程序程序启动后, 点击 发送有序广播 按钮, 发送一条广播事件, 此时观察 LogCat 窗口中的提示信息, 运行结果如图 6-12 所示 图 6-12 拦截有序广播从图 6-12 可以看出, 优先级最高的广播 MyBroadcastReceiverOne 最先接收到广播事件, 其次是 MyBroadcastReceiverThree, 最后是 MyBroadcastReceiverTwo, 说明广播接收者的优先级决定了广播接收的先后顺序 若将广播接收者 MyBroadcastReceiverTwo 优先级同样设置为 1000, 并将 MyBroadcastReceiverTwo 注册在 MyBroadcastReceiverOne 前面, 具体代码如 文件 6-15 所示 文件 6-15 AndroidManifast.xml <receiver android:name=".mybroadcastreceivertwo"> <intent-filter android:priority="1000"> <action android:name="intercept_stitch"/> </intent-filter> <receiver android:name=".mybroadcastreceiverone"> <intent-filter android:priority="1000"> <action android:name="intercept_stitch"/> </intent-filter> <receiver android:name=".mybroadcastreceiverthree"> <intent-filter android:priority="600"> <action android:name="intercept_stitch"/> 14

15 </intent-filter> 此时再来运行程序, 运行结果如图 6-13 所示 图 6-13 拦截有序广播从图 6-13 可以看出,MyBroadcastReceiverTwo 最先接收到了广播事件, 其次是 MyBroadcastReceiverOne, 这说明当两个广播接收者优先级相同时, 先注册的广播接收者会先接收到 前面的讲解已经提到, 优先级高的广播接收者可以拦截接收到的广播, 接下来修改一段代码来验证这种情况 由于 MyBroadcastReceiverTwo 的优先级是最高的, 所以可在此类中添加 abortbroadcast() 方法拦截广播, 具体代码如 文件 6-16 所示 文件 6-16 MyBroadcastReceiverTwo.java 1 package cn.itcast.orderedbroadcast; 2 import android.content.broadcastreceiver; 3 import android.content.context; 4 import android.content.intent; 5 import android.util.log; 6 public class MyBroadcastReceiverTwo extends BroadcastReceiver{ 8 public void onreceive(context context, Intent intent) { 9 Log.i("MyBroadcastReceiverTwo", " 自定义的广播接收者 Two, 接收到了广播事件 "); 10 abortbroadcast(); // 拦截有序广播 11 Log.i("MyBroadcastReceiverTwo"," 我是广播接收者 Two, 广播被我终结了 "); 12 } 13 } 在上述代码中, 通过 abortbroadcast() 方法成功拦截了广播, 当程序执行完此代码, 广播事件将会被终止, 不会向下传递 再次运行程序, 观察 LogCat 窗口打印的提示信息, 运行效果如图 6-14 所示 图 6-14 广播被终结 从图 6-14 可以看出, 只有 MyBroadcastReceiverTwo 接收到了自定义的广播事件, 其他的广播接 收者都没有接收到, 因此说明广播被 MyBroadcastReceiverTwo 拦截了 15

16 多学一招 : 指定广播在实际开发中, 可能会遇到以下情况 : 当发送一条有序广播时, 有多个接收者接收这条广播, 但需要保证一个广播接收者必须接收到此广播, 无论此广播接收者的优先级高或低 要满足这种需求, 可以在 Activity 类中使用 sendorderedbroadcast() 方法发送有序广播, 示例代码如下 : Intent intent = new Intent(); // 定义广播的事件类型 intent.setaction("intercept_stitch"); // 发送有序广播 MyBroadcastReceiverThree receiver = new MyBroadcastReceiverThree(); sendorderedbroadcast(intent,null,receiver, null, 0, null, null); 在上述代码中, 首先定义了指定接收广播的广播接收者实例 然后用 sendorderedbroadcast() 重载的方法, 这个方法有多个参数, 只需关注其中两个就可以了, 第一个参数接收一个 intent 对象, 第三个参数是指定的广播接收者 接下来通过这个方法发送有序广播, 运行结果如图 6-15 所示 图 6-15 指定广播接收者 从图 6-15 可以看出, 虽然广播接收者 MyBroadcastReceiverTwo 强行停止了广播, 但是 MyBroadcastReceiverThree 还是接收到了广播事件, 这就是指定广播的用法 6.5 本章小结 本章详细地讲解了广播接收者的相关知识, 首先介绍了什么是广播接收者, 然后讲解了如何自 定义广播以及广播的类型 通过本章的学习, 要求初学者能够熟练掌握广播接收者的使用, 并在实 际开发中进行应用 思考题 1 请思考 Android 中广播接收者的作用 2 请思考广播有几种类型, 以及不同类型的区别 扫描右方二维码, 查看思考题答案! 16

17 17

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android= 第 6 章广播接收者 应用案例 案例 6-1 CallRecord( 通话记录 ) 一 案例描述 1 考核知识点 030006001: 广播接收者简介 030006002: 广播接收者的创建 2 练习目标 广播的静态注册和使用 使用广播处理处理事件 3 需求分析手机最重要的功能就是通话功能, 同样储存通话记录也是必不可少的 该案例使用广 播接收者自己实现通话记录的功能 包括呼出电话 已接来电 未接来电以及通话产生的

More information

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 : EditText 实现城市搜索 1801210778 邹宇航 摘要 : 使用 EditText 实现搜索城市的功能, 以此为依据更新 ListView 1. 效果图 : 2. 主要步骤 (1) 在 select-city.xml 布局文件中中添加 EditText 控件用作搜索框, 然后添加 ListView 控件用来显示城市名字内容 代码如下 : 预览图 : (2) 在 SelectCity.java

More information

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

Android 编程基础 Android 开发教程 & 笔记 1

Android 编程基础 Android 开发教程 & 笔记 1 Android 开发教程 & 笔记 1 多式样 ProgressBar 撰写 : 地狱怒兽 联系 :zyf19870302@126.com 普通圆形 ProgressBar 该类型进度条也就是一个表示运转的过程, 例如发送短信, 连接网络等等, 表示一个过程正 在执行中 一般只要在 XML 布局中定义就可以了

More information

Android + NFC

Android + NFC Android + NFC 建國科技大學資管系饒瑞佶 2017/3 v1 讀取 Tag UUID Android 2.3.3 (API Level 10) 才有支援完整的 NFC 功能 只要 NFC 相容都讀的到 (NFC 或 Mifare) 建立新專案修改 AndroidManifest.xml 加入 , 如果有 NFC Tag 進入感測範圍, 本 App 也會變成可處理的

More information

0511-Android程式之GPS應用_專題週記4

0511-Android程式之GPS應用_專題週記4 逢甲大學通訊工程學系專題研究 Android 程式之 GPS 應用 專題週記 0511 學生姓名 陳彥儒 D0035131 廖元譽 D0077791 指導老師 楊豐瑞老師繳交日期 2014.05.11 1 匯入 GoogleMap 1.1 取得授權步驟 目前進度 取得 Google 授權鑰匙 實作程式尚未成功 1.1.1 建立個人的 keystore 1.1.2 由個人的 keystore 查詢 SHA1

More information

任务实施 (1) 创建项目 图 3-1 欢迎界面 首先创建一个工程, 将其命名为 BoXueGu, 指定包名为 com.boxuegu (2) 导入界面图片将欢迎界面所需要的背景图片 launch_bg.png 导入到 drawable 文件夹中, 项目的 icon 图标 app_icon.png

任务实施 (1) 创建项目 图 3-1 欢迎界面 首先创建一个工程, 将其命名为 BoXueGu, 指定包名为 com.boxuegu (2) 导入界面图片将欢迎界面所需要的背景图片 launch_bg.png 导入到 drawable 文件夹中, 项目的 icon 图标 app_icon.png 第 3 章注册与登录模块 学习目标 掌握欢迎界面的开发, 能够独立制作欢迎界面 ; 掌握注册和登录模块的开发, 能够实现用户登录功能 博学谷项目的注册与登录模块主要用于创建用户账号, 管理用户信息 当用户注册成功后会跳转到登录界面, 用户登录后可以修改密码以及设置密保, 且只有设置过密保的账户才可以找回密码 本章将针对注册与登录模块进行详细讲解 3.1 欢迎界面 任务综述 在实际开发中, 开启应用程序时首先会呈现一个欢迎界面,

More information

Dynamic Layout in Android

Dynamic Layout in Android Dynamic Layout in Android 建國科技大學資管系 饒瑞佶 2013/5 V1 Layout 多半都透過 res/layout/xml 格式設定來達成 Android 是 OOP, 所以可以動態產生 Layout 重點是 Layout 的階層關係 (Hierarchy) 需要處理對應事件 最後一樣用 setcontentview 加入 Layout 一 加入現有 Layout 中

More information

Android Service

Android Service Android Service- 播放音樂 建國科技大學資管系 饒瑞佶 2013/7 V1 Android Service Service 是跟 Activity 並行 一個音樂播放程式若沒使用 Service, 即使按 home 鍵畫面離開之後, 音樂還是照播 如果再執行一次程式, 新撥放的音樂會跟先前撥放的一起撥, 最後程式就會出錯 執行中的程式完全看不到! 但是, 寫成 Service 就不同了

More information

01_Service

01_Service 移动平台应用软件开发 Service 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年 什么是 Service 与 Activity 一样, 同属 Android 基本组件 后台运行, 不与用户交互, 没有可视化界面 最常见的 Service 如 : 在后台播放歌曲 后台执行文件的下载 同样需在 AndroidManifest.xml

More information

Microsoft Word 杨超-spinner实现省市县的三级联动.docx

Microsoft Word 杨超-spinner实现省市县的三级联动.docx Spinner 实现省市县的三级联动 1801210908- 杨超 下拉框 Spinner 控件 : 常用属性 属性 说明 android:prompt 下拉提示信息 android:spinnermode 下拉显示方法 android:entries 配置下拉框数据源 android:dropdownwidth 下拉框显示模式下的显示项宽度 常用方法 方法 说明 getdropdownwidth()

More information

Microsoft Word - 第4章 3D相册.doc

Microsoft Word - 第4章 3D相册.doc 第 4 章 3D 相册 学习目标 u 掌握相册界面的开发, 实现相册的立体与倒影效果 在现实生活中, 我们浏览照片时, 不同的相册软件有不同的浏览效果 本章主要实现了一个 3D 效果的相册, 该相册中的图片可以循环滑动展示 4.1 3D 相册 任务综述 相册界面主要是展示一组图片的立体效果, 并显示每个图片的倒影, 左右滑动可以切换不同的图片到 界面的中间位置, 同时在图片下方显示当前图片的标题,

More information

幻灯片 1

幻灯片 1 Delivering accurate maps to Chinese Android users 为中国安卓用户提供准确的地图服务 Work at Mapbox includes: Android apps, demos, starter kits, documentation, support, syncing Android team with other departments, etc.

More information

_banneradview.settest(true); _banneradview.setuserkeywords("swimming"); _banneradview.setusercategories("1,3,4"); _banneradview.setusergender(jdbanner

_banneradview.settest(true); _banneradview.setuserkeywords(swimming); _banneradview.setusercategories(1,3,4); _banneradview.setusergender(jdbanner 京东 APP 联盟 SDK Android 版接口说明文档 1.0 1. 嵌入 SDK 1.1 添加 SDK Android Studio 环境 : 菜单 New->New Module->Import.jar or.aar package, 然后选中 App 联盟 SDK 所带的 jar 文件 Eclipse+ADT 环境 : 将 App 联盟 SDK 所带的 jar 文件拷贝到 libs/ 目录下

More information

RecyclerView and CardVew

RecyclerView and CardVew RecyclerView and CardView 建國科技大學資管系饒瑞佶 2017/10 V1 CardView CardView A CardView is a ViewGroup. Like any other ViewGroup, it can be added to youractivity or Fragment using a layout XML file. To create an

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

Android Fragment

Android Fragment Android Fragment 建國科技大學資管系饒瑞佶 2017/10 V1 Android 3.0 後才支援 Fragment 解決部分 App 適應螢幕大小的問題 它類似於 Activity, 可以像 Activity 可以擁有自己的版面設計, 也和 Activity 一樣有自己的生命週期 ( 具備 oncreate() oncreateview() 與 onpause() 方法 ) LifeCycle

More information

Microsoft Word - weather12 刷新按钮动画+搜索框+bug处理.docx

Microsoft Word - weather12 刷新按钮动画+搜索框+bug处理.docx 一 刷新按钮的动画效果 : 在刷新按钮的位置做两个按钮的布局, 一个是原来的静态图片, 一个是旋转的动画, 然 后控制这两个效果的显示和隐藏 ( 一 ) 刷新按钮的 style: 1. 在 app/src/main/res/values/ styles.xml 文件里添加一个 style: 2. 在 drawable 文件夹下新建一个 title_update_anim.xml, 添加如下内容 注

More information

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 -

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 - DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0-1 - 目录 1. 获取身份... 1 2. 加载与配置... 2 2.1 加载 SDK 文件... 2 2.2 配置 AndroidManifest.xml... 2 2.3 混淆代码... 3 3. 初始化... 4 4. 功能使用... 4 第 1 页共 1

More information

Android 开发教程

Android 开发教程 封面 1 文件存取编程基础 文件 文件可以用来存储比使用引用更大数量的数据 Android 提供方法来读 写文件 只有本地文件可以被访问 优点 : 可以存储大容量的数据 缺点 : 文件更新或是格式改变可能会导致巨大的编程工作 文件操作 读文件 Context.openFileInput(String name) 打开一个与应用程序联系的私有文件输入流 当文件不存在时抛出 FileNotFoundException

More information

内文-2.indd

内文-2.indd 客户端服务端音乐资源信息 : 1. 项目需求从本项目开始, 我们一起开发一个简单的在线音乐播放器, 它具有以下功能 (1) 程序启动时显示一个启动画面, 如图 1-1 所示 (2) 在程序主页面显示服务器上的歌曲列表, 包括歌手名与歌曲名, 单击列表条目可实现在线音乐播放, 单击 播放 暂停 上一曲 下一曲 按钮可实现对应的功能, 进度条可以显示歌曲播放进度, 如图 1-2 所示 图 1-1 程序启动画面

More information

Microsoft Word - 第3章 Activity.doc

Microsoft Word - 第3章 Activity.doc 第 3 章 Activity 学习目标 u 掌握 Activity 的生命周期 u 掌握 Activity 的四种启动模式 u 掌握显式意图和隐式意图的使用 u 学会使用 Intent 传递数据在现实生活中, 经常会使用手机进行打电话 发短信 玩游戏等, 这就需要与手机界面进行交互 在 Android 系统中, 用户与程序的交互是通过 Activity 完成的 同时 Activity 也是 Android

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

Microsoft PowerPoint - App與微控器整合.pptx

Microsoft PowerPoint - App與微控器整合.pptx 1 2 Outline APP 與微控器整合 2017 中山大學電機實驗營 App 開發環境 -Android Studio 介紹 App 開發 實驗營 App 流程 3 4 Android Studio 介紹 Android Studio 是一個為 Android 平台開發程式的整合式開發環境, 可供開發者免費使用, 並在 Windows OS X Linux 平台上均可執行 專案結構 一個專案下有

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

ShareText

ShareText 作者 : 林致宇 日期 :2012/1/23 問題 : 如何分享分享文字資訊給其它的應用程式? 解答 : 有時候我們可能會希望 我們的應用程式的資訊 能夠讓使用者分享出去, 讓使用者能夠將此資訊傳送簡訊給其好友或寄電子郵件的方式寄給其好友, 這份文件將示範如何寫出這樣的應用程式 本文件將產出兩個 App, 第一個 App 是 分享資料的來源, 名為 CopyPaste_Source, 功能非常簡單,

More information

教案模板4-2

教案模板4-2 移动终端开发技术 电子教案 第三单元 ListView 的功能和用法 章节名称 : 第二章 软件要美观 UI 开发的点点滴滴 所属专业 ( 教研室 ): 计算机软件技术 制定人 : 陈媛媛 合作人 : 制定时间 : 2018 年 2 月 日照职业技术学院 单元标题 ListView 的功能和用法 单元教学学时 在整体设计中的位置 4 课时 第 7 次 授课班级上课地点一体化教室 上课时间周月日第节

More information

開發工具下載與安裝

開發工具下載與安裝 通知訊息與背景程式 -1 通知訊息 (Notification) Chapter 應用程式 ( 尤其是背景程式 ) 通常會利用通知訊息 (Notification) 來告知使用者重要資訊或警示訊息 為了不干擾使用者目前的操作畫面, 通知訊息利 1 用狀態列來呈現簡易的圖示與訊息文字, 待使用者向下拖曳會更進一步呈現詳細內容, 點擊該內容更可以開啟其他 Activity, 功能非常豐富 如果想要將通知訊息顯示在狀態列

More information

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc 1.1 组合 Hibernate 与 Spring 1. 在 Eclipse 中, 新建一个 Web project 2. 给该项目增加 Hibernate 开发能力, 增加 Hibernate 相关类库到当前项目的 Build Path, 同时也提供了 hibernate.cfg.xml 这个配置文件 3. 给该项目增加 Spring 开发能力, 增加 spring 相关类库到当前项目的 Build

More information

第一章 Android 简介与开发环境搭建

第一章 Android 简介与开发环境搭建 安卓开发环境与常用布局 第一章 Android 简介与开发环境搭建 本章目标 3G 的概念 Android 的改变 Android 开发环境的搭建编写第一个 Android 程序 Android 程序的目录结构 手机发展史 1. 3G 的概念 3G 全称为 :3rd Generation, 中文含义即为第三代数字通信, 是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统 2. 符合 3G

More information

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog 計劃名稱 : 104 年度教育部資通訊軟體創新人才推升推廣計畫跨校資源中心 : 雲端運算 ( 國立中山大學 ) 課程名稱 : 網路及平台服務 Part1- 課程教材 教材名稱 :Android 介面元件 -TableLayout Toast AlertDialog 國立高雄大學資訊工程學系張保榮教授 大綱 TableLayout 版面配置 Toast 版面配置 AlertDialog 版面配置 TableLayout

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 多个用户界面的程序设计 3.1 页面的切换与传递参数值 3.1.1 传递参数组件 Intent Intent 是 Android 系统的一种运行时的绑定机制, 在应用程序运行时连接两个不同组件 在 Android 的应用程序中不管是页面切换还是传递数据或是调用外部程序都可能要用到 Intent Intent 负责对应用中某次操作的动作 动作涉及的数据 附加数据进行描述, Android

More information

2 从列表选择在添加黑名单界面中, 点击 从联系人中添加 按钮时, 会跳转到联系人列表界面, 点击其中的任意一个联系人, 此时该联系人的电话号码和姓名会显示在添加黑名单界面的编辑框中, 点击下方的 添加 按钮, 此时会将该号码添加到黑名单中, 并在主界面中展示, 如图 3-2 所示 图 3-2 从联

2 从列表选择在添加黑名单界面中, 点击 从联系人中添加 按钮时, 会跳转到联系人列表界面, 点击其中的任意一个联系人, 此时该联系人的电话号码和姓名会显示在添加黑名单界面的编辑框中, 点击下方的 添加 按钮, 此时会将该号码添加到黑名单中, 并在主界面中展示, 如图 3-2 所示 图 3-2 从联 第 3 章通讯卫士模块 了解通讯卫士模块功能 掌握 SQLite 数据库的使用 掌握如何使用广播接收者拦截电话和短信在日常生活中, 使用手机时经常会被某些电话或短信骚扰, 例如推销保险 中奖信息等, 为此, 我们开发了通讯卫士模块, 该模块可以将骚扰电话或垃圾短信添加到黑名单中, 并对其进行拦截 本章将针对通讯卫士模块进行详细讲解 3.1 模块概述 3.1.1 功能介绍 通讯卫士模块的主要功能是进行黑名单拦截,

More information

Chapter 16 Widget 作者 : 林致孙 不少 Android 手機在使用者剛購買時, 手機的桌面上就已經有不少的小工具 (Widget), 有些可以即時顯示氣候資訊, 有些則可以顯示最新股票資訊 本章將 利用兩個例子來說明 Widget 是如何設計的 16.1 時辰顯示小工具 在 An

Chapter 16 Widget 作者 : 林致孙 不少 Android 手機在使用者剛購買時, 手機的桌面上就已經有不少的小工具 (Widget), 有些可以即時顯示氣候資訊, 有些則可以顯示最新股票資訊 本章將 利用兩個例子來說明 Widget 是如何設計的 16.1 時辰顯示小工具 在 An Chapter 16 Widget 作者 : 林致孙 不少 Android 手機在使用者剛購買時, 手機的桌面上就已經有不少的小工具 (Widget), 有些可以即時顯示氣候資訊, 有些則可以顯示最新股票資訊 本章將 利用兩個例子來說明 Widget 是如何設計的 16.1 時辰顯示小工具 在 Android 開發者網站, 已針對 Widget 的開發提供了一份詳細的文件 [1], 本章大部份的內容皆是參考該文件而製作的,

More information

拦截器(Interceptor)的学习

拦截器(Interceptor)的学习 二 拦截器 (Interceptor) 的学习 拦截器可以监听程序的一个或所有方法 拦截器对方法调用流提供了细粒度控制 可以在无状态会话 bean 有状态会话 bean 和消息驱动 bean 上使用它们 拦截器可以是同一 bean 类中的方法或是一个外部类 下面介绍如何在 Session Bean 类中使用外部拦截器类 @Interceptors 注释指定一个或多个在外部类中定义的拦截器 下面拦截器

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

题目

题目 开发 Android 应用 目的 : 帮助大家了解 Android 平台开发 作者 : 王威威 技术爱好 : linux,qt, 嵌入式开发 MSN : wangweiweicdma@hotmail.com Email : wang.weiwei1@ztenc.com.cn wangjiecdma@126.com 下载开发资源 1 下载最新的 Android SDK http://code.google.com/android/download.html

More information

移动安全

移动安全 Basic Courses of Android Security 移动安全 北斗 2015/11/19 1 2 个人简介 ID: 北斗 WhiteCell-Lab 安全研究员 白细胞安全团队成员 关注移动安全 3 目录 drozer 介绍与安装 工具使用 四大组件安全 Activity Broadcast Service Content Provider 数据存储安全 外部存储 内部存储 4 drozer

More information

Database_001

Database_001 作者 : 林致宇日期 :2011/10/26 主要參考來源 : http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applicat ions/ 問題 : 如在存取一個已經建立好的資料庫? 解答 : 有一些應用程式會需要讀取已經建立好的資料庫, 例如一個試題測驗應用程式, 裡面的試題可能已經於電腦上, 使用任何的

More information

Android线程和进程

Android线程和进程 Android 进程和线程 版权声明 华清远见教育集团版权所有 ; 未经华清远见明确许可, 不得为任何目的以任何形式复制或传播此文档的任何部分 ; 本文档包含的信息如有更改, 恕不另行通知 ; 华清远见教育集团保留所有权利 Android 进程和线程 在安装 Android 应用程序的时候,Android 会为每个程序分配一个 Linux 用户 ID, 并设置相应的权限, 这样其它应用程序就不能访问此应用程序所拥有的数据和资源了

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

在Spring中使用Kafka:Producer篇

在Spring中使用Kafka:Producer篇 在某些情况下, 我们可能会在 Spring 中将一些 WEB 上的信息发送到 Kafka 中, 这时候我们就需要在 Spring 中编写 Producer 相关的代码了 ; 不过高兴的是,Spring 本身提供了操作 Kafka 的相关类库, 我们可以直接通过 xml 文件配置然后直接在后端的代码中使用 Kafka, 非常地方便 本文将介绍如果在 Spring 中将消息发送到 Kafka 在这之前,

More information

Microsoft Word - 第1章 Android基本概念.docx

Microsoft Word - 第1章 Android基本概念.docx Android 系 统 下 Java 编 程 详 解 作 者 : 华 清 远 见 第 1 章 Android 基 本 概 念 本 章 简 介 本 章 主 要 介 绍 Android 基 本 概 念 方 面 的 内 容, 包 括 Android 平 台 特 性 Android 系 统 架 构 Android 开 发 框 架 和 Android 开 发 环 境 搭 建 1.1 Android 简 介 Android

More information

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取将导致上次获取的 access_token 失效 接入方可以使用 AppID 和 AppSecret

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

Android + WebService

Android + WebService Android + Web Service 建國科技大學資管系饒瑞佶 2017/3 V1 呼叫 OpenData Web Service http://data.taipei/opendata/datalist/apiaccess?scope=resourceaquire& rid=e7c46724-3517-4ce5-844f-5a4404897b7d http://data.taipei/opendata/datalist/apiaccess?scope=resourceaquir

More information

腾讯社交广告转化追踪 Android SDK 接入说明文档 V1.2

腾讯社交广告转化追踪 Android SDK 接入说明文档 V1.2 腾讯社交广告转化追踪 Android SDK 接入说明文档 V1.2 文档 腾讯社交广告转化追踪 Android SDK 接入说明文档 V1.2 必读 1. SDK 嵌入 1.1 步骤 1: 添加 SDK 到工程中 1.2 步骤 2: 修改 AndroidManifest.xml 文件 2. 接入代码 2.1 激活事件统计接口 2.1.1 接入代码示例 2.1.2 激活事件主要 API 2.2 更多转化类型统计接口

More information

建模与图形思考

建模与图形思考 F06_c 观摩 :ContentProvider 基於軟硬整合觀點 架构與 DB 引擎移植方法 ( c) By 高煥堂 4 通用性基类 ContentProvider 基於軟硬整合觀點 的使用范例 刚才的范例里, 我们直接使用 DataPersist 类的接口来与 SQLite 沟通 本节将替 DataPersist 配上 ContentProvider 基类, 让 Client 能透过 ContentProvider

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 章.1 Android UI 基本概念 用户界面 (User Interface,UI) 是用户与设备之间进行信息交流的直接媒介, 是决定用户体验最重要的部分 相比于早期的计算机的主要交互界面 批处理界面和命令行界面, 现在更为流行的是更简单直接的用户图形界面 (Graphical User Interface, GUI) GUI 简单易用, 受众面广, 直接推动了个人计算机的发展 目前, 主流大众的操作系统都采用了

More information

教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 學校系所 : 樹德科技大學資訊工程學系

教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 學校系所 : 樹德科技大學資訊工程學系 教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 (s11639104@stu.edu.tw) 學校系所 : 樹德科技大學資訊工程學系 實驗目的 本實驗的目的在於讓同學們可以了解 Android 系統核心內部的行程通訊的原理, 透過呼叫系統提供的其中一樣服務

More information

本文档旨在说明如果快速的接入集成推送 SDK, 快速实现小米, 华为, 魅族的推送接入, 有关详细的设计文档参考集成推送设计说明文档 准备工作 编译本项目, 配置完 android sdk 后执行以下命令, 或者你可以将本工程导入到 android studio 中./gradlew clean a

本文档旨在说明如果快速的接入集成推送 SDK, 快速实现小米, 华为, 魅族的推送接入, 有关详细的设计文档参考集成推送设计说明文档 准备工作 编译本项目, 配置完 android sdk 后执行以下命令, 或者你可以将本工程导入到 android studio 中./gradlew clean a 本文档旨在说明如果快速的接入集成推送 SDK, 快速实现小米, 华为, 魅族的推送接入, 有关详细的设计文档参考集成推送设计说明文档 准备工作 编译本项目, 配置完 android sdk 后执行以下命令, 或者你可以将本工程导入到 android studio 中./gradlew clean assemble 一 AndroidManifest 配置 由于三方 SDK 的权限, 组件全部配置在

More information

書面

書面 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 5.4 互動功能畫面 程式碼請參考附件-程式三 在進入互動頁面時 會執行setAllText()依寵物狀態數值來 設定狀態文字與頭像 並且依心情決定是否要不要播放音效 觸摸的區域 由於是自己寫的 view 所以並未透過xml來設置 而是透過Layut.addview()來動態新增

More information

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民 1 08414159 惠 鴻 眼 鏡 行 桃 園 市 中 壢 區 福 德 里 中 華 路 一 段 186 號 1 樓 30,000 獨 資 宋 耀 鴻 105/04/27 府 經 登 字 第 1059003866 號 2 17891110 承 元 冷 氣 空 調 工 程 行 桃 園 市 桃 園 區 中 德 里 國 際 路 1 段 98 巷 50 號 2 樓 之 4 200,000 獨 資 詹 安 平

More information

建立Android新專案

建立Android新專案 Android 智 慧 型 手 機 程 式 設 計 Android WebService 建 國 科 技 大 學 資 管 系 饒 瑞 佶 2012/4 V1 2012/8 V2 2013/5 V3 2014/10 v4 提 醒 這 節 的 內 容 針 對 的 是 MS 的 Web Service 或 是 使 用 SOAP(Simple Object Access Protocol) 標 準 建 立

More information

RxJava

RxJava RxJava By 侦跃 & @hi 头 hi RxJava 扩展的观察者模式 处 观察者模式 Observable 发出事件 Subscriber 订阅事件 bus.post(new AnswerEvent(42)); @Subscribe public void onanswer(answerevent event) {! }! Observable observable = Observable.create(new

More information

PowerPoint 簡報

PowerPoint 簡報 UI 設計 Android 專案目錄架構 Android 專案建立後會自動產生 3 個主要目錄 src:java 程式檔案 res: 資源 ( 文字 圖形 聲音檔案等 ) 與 UI 設定有關的 layout 檔 此目錄內檔案名稱只能為小寫字母 數字 _. gen:r.java 根據 res 目錄內容自動產生 不要去修改 R.java Android 中所有的資源檔案 ( 圖片 XML 等 ) 命名都必須使用英文小寫,

More information

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21 Outlines for Today Future Planning Review System Architecture Dev. Tools & Making the First App Project Structure & File Details Application

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 第 5 章 5.1 异常处理 异常 (Exception) 指程序运行过程中出现的非正常现象, 例如用户输入错误 需要处理的文件不存在 在网络上传输数据但网络没有连接等 由于异常情况总是可能发生, 良好健壮的应用程序除了具备用户所要求的基本功能外, 还应该具备预见并处理可能发生的各种异常的功能 所以, 开发应用程序时要充分考虑到各种可能发生的异常情况, 使程序具有较强的容错能力 通常把这种对异常情况进行处理的技术称为异常处理

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 Android 控件进阶 要设计出让用户喜欢的 Android 应用程序界面, 除了需要用到在第 2 章讲的最基本的 TextView EditText 和 Button 控件外, 还要用到其他控件, 如 ImageButton 控件 ImageView 控件 RadioButton 控件 CheckBox 控件和 ListView 控件等 本章主要讲解功能强大 应用广泛的一些控件 3.1

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

建模与图形思考

建模与图形思考 C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

「西醫基層總額支付委員會《第28次委員會議紀錄

「西醫基層總額支付委員會《第28次委員會議紀錄 西 醫 基 層 總 額 支 付 委 員 會 101 年 第 2 次 委 員 會 議 紀 錄 時 間 :101 年 5 月 23 日 下 午 2 時 地 點 : 中 央 健 康 保 險 局 18 樓 會 議 室 ( 台 北 市 信 義 路 3 段 140 號 18 樓 ) 主 席 : 黃 召 集 人 三 桂 出 席 委 員 : 王 委 員 正 坤 王 委 員 錦 基 古 委 員 博 仁 王 正 坤 王

More information

Android 开发快速入门 第 章.1 开发环境的搭建 在开始 Android 开发之旅启动之前, 首先要搭建环境,Android 开发环境的安装和配置是 开发 Android 应用程序的第一步, 也是深入 Android 平台的一个非常好的入口.1.1 开发准备工作 配置 Android 开发环

Android 开发快速入门 第 章.1 开发环境的搭建 在开始 Android 开发之旅启动之前, 首先要搭建环境,Android 开发环境的安装和配置是 开发 Android 应用程序的第一步, 也是深入 Android 平台的一个非常好的入口.1.1 开发准备工作 配置 Android 开发环 Android 开发快速入门 学习目标 : 对 Android 快速入门, 能够开发运行简单 Android 应用, 为以后深入学习打下坚实基础 知识目标 理解 Android 相关的基本概念 熟练搭建 Android 开发运行环境 编写一个 Android 应用程序 了解 Android 应用四个主要组件 技能目标 能熟练搭建 Android 开发环境 编写运行一个 Android 应用 Android

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

實作SQLiteOpenHelper類別

實作SQLiteOpenHelper類別 SQLiteOpenHelper 類別存取 SQLite 建國科技大學資管系 饒瑞佶 2013/5 V1 Android 連結資料庫 MySQL SQL Server Web Service 遠端資料庫 Internet Intranet Android SQLite 單機資料庫 Android vs. SQLite 透過 SQLiteOpenHelper 類別來操作 建立資料庫 ( 建構子 ) 建立資料表

More information

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 本章学习目标 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 配置视图解析器 @RequestMapping 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 和 Struts2 都属于表现层的框架, 它是 Spring 框架的一部分, 我们可 以从 Spring 的整体结构中看得出来 :

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

Microsoft Word - AEL Part08

Microsoft Word - AEL Part08 推薦序 黃文良教授 中央研究院資訊科學研究所 近年來由於 3G 網路普及, 硬體運算效能提升, 再加上各式應用軟體的靈活便利性, 智慧型手機漸漸取代傳統行動電話融入日常生活, 包括電子郵件 網頁瀏覽 影音播放 地圖查詢 拍照攝影, 各種功能隨手呈現即時互動帶來無比方便彈性 這種普遍需求現象也反映在許多手機品牌的亮麗銷售數據上 我們可以預期在通訊成本持續降低, 雲端運算逐步成熟, 網路早已無所不至的時代,

More information

Microsoft Word - QTP测试Flex.doc

Microsoft Word - QTP测试Flex.doc TIB 自动化测试工作室 http://www.cnblogs.com/testware 使用 QTP 进行 Flex 自动化测试 自动化测试工具与 Flex 应用程序之间是通过代理 (Agent) 来交互的, 如图所示 : 这也就是为什么后面在使用 QTP 进行 Flex 自动化测试之前要先安装 Flex 插件 配置和编译 Flex 程序的原因 前提条件 在使用 QTP 进行 Flex 4 的测试之前,

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

Android 开发教程

Android 开发教程 封面 1 Android 模拟器 模拟器参数 参数格式 emulator [option] [-qemu args] option 选项 -sysdir 为模拟器在 目录中搜索系统硬盘镜像 -system 为模拟器从 文件中读取初始化系统镜像 -datadir 设置用户数据写入的目录 -kernel 为模拟器设置使用指定的模拟器内核

More information

Microsoft Word - 1 扉页

Microsoft Word - 1 扉页 普通高等教育应用型规划教材 计算机类 Android 程序开发入门教程 俞成海宋瑾钰 舒挺郭家军 编著 北京 内容简介 本书共分 9 章 第 1 章讲述 Android 起源 概述 环境搭建及 Android Studio 的一些使用技巧 ; 第 2 章讲述 Android 程序的基本构成 生命周期及程序中的几大常用布局 ; 第 3 章介绍 Android 中的基础通用控件, 包括常用的文本控件 编辑控件

More information

_banneradview.setuserkeywords("swimming"); _banneradview.setusercategories("1,3,4"); _banneradview.setusergender(jdbanneradview.gender_male); _bannera

_banneradview.setuserkeywords(swimming); _banneradview.setusercategories(1,3,4); _banneradview.setusergender(jdbanneradview.gender_male); _bannera 京东与 AdView APP 联盟 SDK Android 版接口说明文档 1.5 1. 嵌入 SDK 1.1 添加 SDK Android Studio 环境 : 菜单 New->New Module->Import.jar or.aar package, 然后选中 App 联盟 SDK 所带的 jar 文件 Eclipse+ADT 环境 : 将 App 联盟 SDK 所带的 jar 文件拷贝到

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 Android 应用程序剖析 用户要想编写出复杂的应用程序, 首先要对 Android 应用程序的构成及程序的内部执行流程有一个清晰的了解 本章通过对一个简单的应用程序的深入剖析, 使读者对 Android 应用程序的构成及执行流程有个清晰的了解 3.1 Android 应用程序目录结构 之前我们已经开发了一个项目名称为 HelloWorld 的 Android 应用程序, 也许你很疑惑,

More information

北京方研矩行科技有限公司 Android SDK 快速接入文档

北京方研矩行科技有限公司 Android SDK 快速接入文档 Android SDK 快速接入文档 目录 概要... 3 1 SDK 介绍... 3 2 AndroidMinfest.xml 配置... 4 3 SDK 初始化... 6 4 发送手机验证码... 10 5 注册... 11 6 登录... 11 7 获取产品列表... 12 8 获取设备列表... 13 9 发现设备... 14 10 绑定设备... 15 11 控制设备... 15 12 接收设备上报消息...

More information

1.5招募说明书(草案)

1.5招募说明书(草案) PUBLIC 2014 1 PUBLIC - 1 2014 1 PUBLIC - 2 2014 1 PUBLIC - 3 2014 1 PUBLIC - 4 2014 1 PUBLIC - 5 2014 1 PUBLIC - 6 2014 1 PUBLIC - 7 2014 1 PUBLIC - 8 2014 1 PUBLIC - 9 2014 1 PUBLIC - 10 2014 1 PUBLIC

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

03 开发入门.key

03 开发入门.key #3 手机应用开发入门 刘宁 Email:liuning2@mail.sysu.edu.cn 大纲» Android 基本概念» 开发包及 工具安装» 创建 HelloWorld» Android 程序设计基础 2 Android 开发基本概念» Activities» Intents» 视图与控件 ( 界 面元素 )» 异步调 用 ( 多线程 支持 )» 后台服务 3 Activities Android

More information

教案模板4-2

教案模板4-2 移动终端开发技术 电子教案 第三单元 SQLite 数据库存储 章节名称 : 第四章 数据都去哪了 详解数据存储 所属专业 ( 教研室 ): 计算机软件技术 制定人 : 陈媛媛 合作人 : 制定时间 : 2018 年 2 月 日照职业技术学院 单元标题 SQLite 数据库存储 单元教学学时 在整体设计中的位置 4 课时 第 15 次 授课班级上课地点一体化教室 上课时间周月日第节 能力目标知识目标素质目标

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

Microsoft Word - 1-3陳詠琳-近代..

Microsoft Word - 1-3陳詠琳-近代.. 近 代 數 字 卦 研 究 考 述 陳 詠 琳 摘 要 所 謂 的 數 字 卦, 乃 指 出 土 文 物 上 某 種 奇 特 的 卜 筮 符 號, 有 學 者 表 示 這 些 符 號 為 數 字, 並 將 之 與 周 易 連 結, 遂 使 此 類 符 號 有 筮 數 易 卦 之 稱, 為 一 門 新 穎 的 易 學 研 究 議 題 張 政 烺 以 奇 數 為 陽, 偶 數 為 陰 的 原 則, 把

More information

Microsoft Word - G3_BK_Ch09-8.doc

Microsoft Word - G3_BK_Ch09-8.doc 第 9 章类别层级的数据和函数 195 196 Android 的对象技术 (OOP) 第 9 章类别层级的数据和函数 197 第 9 章 类别层级 (Class-level) 的数据及函数 9.1 类别层级的数据 9.2 类别层级的函数 9.3 Android 的类别层级数据和函数之例 9.4 应用于 C/C++ 198 Android 的对象技术 (OOP) 9.1 类别层级的数据 类别层级 (Class-level)

More information

<4D F736F F D20B5DA36D5C220D7E9BCFEBCE4CDA8D0C52E646F6378>

<4D F736F F D20B5DA36D5C220D7E9BCFEBCE4CDA8D0C52E646F6378> Android 应用程序开发与典型案例 作者 : 华清远见 第 6 章组件间通信 本章简介 在第 5 章的学习中, 主要了解了 Android 程序界面的开发, 包括用户界面基础 用户界面控件的使用 界面布局的特点及使用方法 菜单的使用方法 界面事件的 处理方法等 在此基础上, 本章将对 Android 组件间的通信进行学习, 包括 Intent 进行组件通信的原理 Intent 启动 Activity

More information