首页 技术 正文
技术 2022年11月12日
0 收藏 582 点赞 4,776 浏览 65685 个字

本章继续讲述在android界面设计中相关的知识点。介绍内容包括BroadcastReceiver(广播),Service(服务),Widget(小部件),WebView(网页加载控件)。

1.BroadcastReceiver

(1)广播简介

 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。

广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用 Context.sendBroadcast() 、 Context.sendOrderedBroadcast() 来实现的。通常一个广播 Intent 可以被订阅了此 Intent 的多个广播接收者所接收。

(2)广播机制

首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用 sendOrderBroadcast()或sendStickyBroadcast()方法,把 Intent对象以广播方式发送出去。

当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent 相匹配,若匹配则就会调用BroadcastReceiver的onReceive()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceive()方法。

(3)广播注册

  • 静态注册:在AndroidManifest.xml中用标签生命注册,并在标签内用标签设置过滤器。例如:

  <receiver android:name=”myRecevice”>    //继承BroadcastReceiver,重写onReceiver方法

    <intent-filter>

      <action android:name=”com.dragon.net”></action> //使用过滤器,接收指定action广播

      </intent-filter>

  </receiver>

  • 动态注册:

  IntentFilter intentFilter = new IntentFilter();

  intentFilter.addAction(String);   //为BroadcastReceiver指定action,使之用于接收同action的广播

registerReceiver(BroadcastReceiver,intentFilter);

  一般:在onStart中注册,onStop中取消unregisterReceiver

  指定广播目标Action:Intent intent = new Intent(actionString);

  并且可通过Intent携带消息 :intent.putExtra(“msg”, “hi,我通过广播发送消息了”);

2.Service

(1)服务简介

Service is an application component that can perform long-running operations in the background and does not provide a user interface. Another application component can start a service and it will continue to run in the background even if the user switches to another application. Additionally, a component can bind to a service to interact with it and even perform interprocess communication (IPC). For example, a service might handle network transactions, play music, perform file I/O, or interact with a content provider, all from the background.

翻译过来就是:Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件。其他应用组件能够启动Service,并且当用户切换到另外 的应用场景,Service将持续在后台运行。另外,一个组件能够绑定到一个service与之交互(IPC机制),例如,一个service可能会处理 网络操作,播放音乐,操作文件I/O或者与内容提供者(content provider)交互,所有这些活动都是在后台进行。

Service有两种状态,“启动的”和“绑定”。Service生命周期流程如下图所示:

<img src="data:image/png;base64,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" alt="" width="180" height="499" />

(2)启动方式

  • startService 启动的服务:主要用于启动一个服务执行后台任务,不进行通信。停止服务使用stopService;
  • bindService 启动的服务:该方法启动的服务可以进行通信。停止服务使用unbindService;
  • startService 同时也 bindService 启动的服务:停止服务应同时使用stepService与unbindService

绑定状态的service,通过调用bindService()来启动,一个绑定的service提供一个允许组件与service交互的接 口,可以发送请求、获取返回结果,还可以通过夸进程通信来交互(IPC)。绑定的service只有当应用组件绑定后才能运行,多个组件可以绑定一个 service,当调用unbind()方法时,这个service就会被销毁了。

(3)使用方法

注册Service,启动Service,在AndroidManifest.xml中注册,注册代码如下:

<service android:name=”com.example.trywidgetsimplest.MusicManageService” ></service>

启动服务:

Intent startIntent = new Intent(MainActivity.this,MusicManageService.class);

startService(startIntent);

停止服务:

Intent startIntent = new Intent(MainActivity.this,MusicManageService.class);

stopService(startIntent);

绑定服务:

绑定服务,便于数据交互或者访问其中的一些方法:
        public boolean bindService(Intent intent, ServiceConnection conn, int flags) ;
        public void unbindService(ServiceConnection conn);
        intent是跳转到service的intent,如 Intent intent = new Intent();intent.setClass(this,MyService.class);
        conn则是一个代表与service连接状态的类,当我们连接service成功或失败时,会主动触发其内部的onServiceConnected或onServiceDisconnected方法。访问service中的数据,可以在onServiceConnected()方法中进行实现。

(4)注意事项

  • 在调用 bindService 绑定到Service的时候,应当保证在某处调用 unbindService 解除绑定(尽管 Activity 被 finish 的时候绑定会自动解除,并且Service会自动停止);
  • 使用 startService 启动服务之后,一定要使用 stopService停止服务,不管你是否使用bindService;
  • 使用 startService 与 bindService 要注意到,Service 的终止,需要unbindService与stopService同时调用,才能终止 Service,不管 startService 与 bindService 的调用顺序,如果先调用 unbindService 此时服务不会自动终止,再调用 stopService 之后服务才会停止,如果先调用 stopService 此时服务也不会终止,而再调用 unbindService 或者之前调用 bindService 的 Context 不存在了(如Activity 被 finish 的时候)之后服务才会自动停止;
  • 当在旋转手机屏幕的时候,当手机屏幕在“横”“竖”变换时,此时如果你的 Activity 如果会自动旋转的话,旋转其实是 Activity 的重新创建,因此旋转之前的使用 bindService 建立的连接便会断开(Context 不存在了),对应服务的生命周期与上述相同。

3.Widget

(1)Widget简介

App Widget是应用程序窗口小部件(Widget)是微型的应用程序视图,它可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新。你可以通过一个App Widget Provider来发布一个Widget。

(2)Widget应用

appwidget-provider标签:

这个玩意是用来定义桌面widget的大小,初始状态等等信息的,它的位置应该放在res/xml文件夹下,具体的xml参数如下:

  • android:minWidth : 最小宽度
  • android:minHeight : 最小高度
  • android:updatePeriodMillis : 更新widget的时间间隔(ms),”86400000″为1个小时
  • android:previewImage : 预览图片
  • android:initialLayout : 加载到桌面时对应的布局文件
  • android:resizeMode : widget可以被拉伸的方向。horizontal表示可以水平拉伸,vertical表示可以竖直拉伸
  • android:widgetCategory : widget可以被显示的位置。home_screen表示可以将widget添加到桌面,keyguard表示widget可以被添加到锁屏界面
  • android:initialKeyguardLayout : 加载到锁屏界面时对应的布局文件

示例XML
<appwidget-provider xmlns:android=”http://schemas.android.com/apk/res/android”
  android:minWidth=”40dp”
  android:minHeight=”40dp”
  android:updatePeriodMillis=”86400000″
  android:previewImage=”@drawable/preview”
  android:initialLayout=”@layout/example_appwidget”
  android:configure=”com.example.android.ExampleAppWidgetConfigure” 
  android:resizeMode=”horizontal|vertical”
  android:widgetCategory=”home_screen|keyguard”
  android:initialKeyguardLayout=”@layout/example_keyguard”>
</appwidget-provider>
示例说明

  • minWidth 和minHeight

它们指定了App Widget布局需要的最小区域。缺省的App Widgets所在窗口的桌面位置基于有确定高度和宽度的单元网格中。如果App Widget的最小长度或宽度和这些网格单元的尺寸不匹配,那么这个App Widget将上舍入(上舍入即取比该值大的最接近的整数)到最接近的单元尺寸。注意:app widget的最小尺寸,不建议比 “4×4” 个单元格要大。关于app widget的尺寸,后面在详细说明。

  • minResizeWidth 和 minResizeHeight

它们属性指定了 widget 的最小绝对尺寸。也就是说,如果 widget
小于该尺寸,便会因为变得模糊、看不清或不可用。 使用这两个属性,可以允许用户重新调整 widget 的大小,使 widget 的大小可以小于
minWidth 和 minHeight。注意:当 minResizeWidth 的值比 minWidth 大时,minResizeWidth 无效;当 resizeMode 的取值不包括 horizontal 时,minResizeWidth 无效。当 minResizeHeight 的值比 minHeight 大时,minResizeHeight 无效;当 resizeMode 的取值不包括 vertical 时,minResizeHeight 无效。

  • updatePeriodMillis

它定义了 widget 的更新频率。实际的更新时机不一定是精确的按照这个时间发生的。建议更新尽量不要太频繁,最好是低于1小时一次。 或者可以在配置 Activity 里面供用户对更新频率进行配置。 实际上,当updatePeriodMillis的值小于30分钟时,系统会自动将更新频率设为30分钟!关于这部分,后面会详细介绍。
  注意:
当更新时机到达时,如果设备正在休眠,那么设备将会被唤醒以执行更新。如果更新频率不超过1小时一次,那么对电池寿命应该不会造成多大的影响。
如果你需要比较频繁的更新,或者你不希望在设备休眠的时候执行更新,那么可以使用基于 alarm 的更新来替代 widget 自身的刷新机制。将
alarm 类型设置为 ELAPSED_REALTIME 或 RTC,将不会唤醒休眠的设备,同时请将 updatePeriodMillis 设为
0。

  • initialLayout

指向 widget 的布局资源文件

  • configure

可选属性,定义了 widget 的配置 Activity。如果定义了该项,那么当 widget 创建时,会自动启动该 Activity。

  • previewImage

指定预览图,该预览图在用户选择 widget 时出现,如果没有提供,则会显示应用的图标。该字段对应在 AndroidManifest.xml 中 receiver 的 android:previewImage 字段。由 Android 3.0 引入。

  • autoAdvanceViewId

指定一个子view ID,表明该子 view 会自动更新。在 Android 3.0 中引入。

  • resizeMode

指定了 widget 的调整尺寸的规则。可取的值有: “horizontal”,
“vertical”,
“none”。”horizontal”意味着widget可以水平拉伸,“vertical”意味着widget可以竖值拉伸,“none”意味着
widget不能拉伸;默认值是”none”。Android 3.1 引入。

  • widgetCategory

指定了 widget 能显示的地方:能否显示在 home Screen 或 lock screen 或 两者都可以。它的取值包括:”home_screen” 和 “keyguard”。Android 4.2 引入。

  • initialKeyguardLayout

指向 widget 位于 lockscreen 中的布局资源文件。Android 4.2 引入。

AppWidgetProvider类:

通过appwidget-provider标签就可以得到初始化的布局,视图等,但widget要实时更新时,要响应用户操作时,就需要额外的类来辅助处理了,这个类就是AppWidgetProvider。由于AppWidgetProvider要接收到当前widget的状态(是否被添加,是否被删除等),所以要接收通知,必然是派生自BroadcastReceiver。

AppWidgetProvider中的广播处理函数如下:(根据不同的使用情况,重写不同的函数)

  • onUpdate():

在3种情况下会调用OnUpdate()。onUpdate()是在main线程中进行,因此如果处理需要花费时间多于10秒,处理应在service中完成。(第二篇会讲为什么还要有service)

  1. 在时间间隔到时调用,时间间隔在widget定义的android:updatePeriodMillis中设置;
  2. 用户拖拽到主页,widget实例生成。无论有没有设置Configure activity,我们在Android4.4的测试中,当用户拖拽图片至主页时,widget实例生成,会触发onUpdate(),然后再显示 activity(如果有)。这点和资料说的不一样,资料认为如果设置了Configure
    acitivity,就不会在一开始调用onUpdate(),而实验显示当实例生成(包括创建和重启时恢复),都会先调用onUpate()。在本例, 由于此时在preference尚未有相关数据,创建实例时不能有效进行数据设置。
  3. 机器重启,实例在主页上显示,会再次调用onUpdate()
  • onDeleted(Context, int[]):


widget 被删除时被触发。

  • onEnabled(Context):

当第1个 widget 的实例被创建时触发。也就是说,如果用户对同一个 widget 增加了两次(两个实例),那么onEnabled()只会在第一次增加widget时触发。

  • onDisabled(Context):

当最后1个 widget 的实例被删除时触发。

  • onReceive(Context, Intent):

在接收到广播时,调用。

(3)Widget布局

在 AppWidgetProviderInfo中已经介绍了,minWidth 和minHeight 用来指定了App Widget布局需要的最小区域。缺省的App Widgets所在窗口的桌面位置基于有确定高度和宽度的单元网格中。如果App Widget的最小长度或宽度和这些网格单元的尺寸不匹配,那么这个App Widget将上舍入(上舍入即取比该值大的最接近的整数——译者注)到最接近的单元尺寸。
例如,很多手机提供4×4网格,平板电脑能提供8×7网格。当widget被添加到时,在满足minWidth和minHeight约束的前提下,它将被占领的最小数目的细胞。

粗略计算minWidth和minHeight,可以参考下面表格:

单元格个数
(行 / 列)
对应的设置大小 (dp)
(minWidth / minHeight)
1 40dp
2 110dp
3 180dp
4 250dp
n 70 × n − 30

详细计算minWidth和minHeight,要计算各个区域的大小。以下图为例:

android 界面设计基本知识Ⅲ

计算结果
minWidth = 144dp + (2 × 8dp) + (2 × 56dp) = 272dp
minHeight = 48dp + (2 × 4dp) = 56dp

(4)Widget支持的布局和控件

Widget并不支持所有的布局和控件,而仅仅只是支持Android布局和控件的一个子集。

  • App Widget支持的布局 

FrameLayout

 LinearLayout

RelativeLayout

GridLayout

  •  App Widget支持的控件

AnalogClock

Button

Chronometer

ImageButton

ImageView

ProgressBar

TextView

ViewFlipper

ListView

GridView

StackView

AdapterViewFlipper

除此之外的所有控件(包括自定义控件)都无法显示,无法显示时,添加出来的widget会显示“加载布局出错”

4.WebView

5.参考引用

Widget文档参考:

http://blog.csdn.net/harvic880925/article/details/41445407

http://blog.csdn.net/sasoritattoo/article/details/17616597

Service文档参考:

http://www.cnblogs.com/yejiurui/p/3429451.html

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,084
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,559
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,408
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,181
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,818
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,901