Android之桌面组件App Widget初探Word文档格式.docx

上传人:b****1 文档编号:5750353 上传时间:2023-05-05 格式:DOCX 页数:10 大小:339.66KB
下载 相关 举报
Android之桌面组件App Widget初探Word文档格式.docx_第1页
第1页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第2页
第2页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第3页
第3页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第4页
第4页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第5页
第5页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第6页
第6页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第7页
第7页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第8页
第8页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第9页
第9页 / 共10页
Android之桌面组件App Widget初探Word文档格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Android之桌面组件App Widget初探Word文档格式.docx

《Android之桌面组件App Widget初探Word文档格式.docx》由会员分享,可在线阅读,更多相关《Android之桌面组件App Widget初探Word文档格式.docx(10页珍藏版)》请在冰点文库上搜索。

Android之桌面组件App Widget初探Word文档格式.docx

3、

2、App启动:

跟普通的Activity一样

以下为实现代码

main.xml布局文件,程序入口类的界面

my_layout.xml布局文件:

带一个图片的按钮

<

?

xmlversion="

1.0"

encoding="

utf-8"

>

LinearLayoutxmlns:

android="

android:

orientation="

vertical"

layout_width="

fill_parent"

layout_height="

<

TextViewandroid:

wrap_content"

text="

程序入口"

/>

/LinearLayout>

类MainActivity程序入口类



packagecom.ljq.activity;

importandroid.app.Activity;

importandroid.os.Bundle;

/**

*主程序入口类

*

*@authorjiqinlin

*

*/

publicclassMainActivityextendsActivity{

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

下面的代码才是开发AppWidget用到的代码

!

--<

ImageView

xmlns:

id="

@+id/imageView"

gravity="

center"

-->

Buttonandroid:

@+id/btn"

background="

@drawable/png1"

/>

my_appwidget.xml布局文件:

--

AppWidgetProvderInfo:

描述AppWidget的大小、更新频率和初始界面等信息,以XML文件形式存在于应用的res/xml/目录下。

注意:

SDK1.5之后此android:

updatePeriodMillis就失效了,要自己创建service更新

appwidget-provider

minWidth="

75dip"

minHeight="

45dip"

updatePeriodMillis="

1000"

initialLayout="

@layout/my_layout"

TestActivity类

importandroid.app.PendingIntent;

importandroid.appwidget.AppWidgetManager;

importandroid.appwidget.AppWidgetProvider;

importandroid.content.ComponentName;

importandroid.content.Context;

importandroid.content.Intent;

importandroid.widget.RemoteViews;

*为手机添加桌面控件,当点击桌面控件时则进入主程序

*AppWidgetProvider:

继承自BroadcastRecevier,在AppWidget应用update、enable、disable和delete时接收通知。

*其中,onUpdate、onReceive是最常用到的方法,它们接收更新通知

publicclassTestActivityextendsAppWidgetProvider{

/**

*用来间隔的更新AppWidget,间隔时间用AppWidgetProviderInfo里的updatePeriodMillis属性定义(单位为毫秒)。

*注意:

updatePeriodMillis就失效了,要自己创建service更新。

*这个方法也会在用户添加AppWidget时被调用,因此它应该执行基础的设置,比如为视图定义事件处理器并启动一个临时的服务Service,如果需要的话。

*但是,如果你已经声明了一个配置活动,这个方法在用户添加AppWidget时将不会被调用,

*而只在后续更新时被调用。

配置活动应该在配置完成时负责执行第一次更新。

publicvoidonUpdate(Contextcontext,AppWidgetManagerappWidgetManager,int[]appWidgetIds){

System.out.println("

onUpdate"

);

//点击桌面组件时进入主程序入口

Intentintent=newIntent(context,MainActivity.class);

PendingIntentpendingIntent=PendingIntent.getActivity(context,0,intent,0);

//RemoteViews类描述了一个View对象能够显示在其他进程中,可以融合layout资源文件实现布局。

//虽然该类在android.widget.RemoteViews而不是appWidget下面,但在AndroidWidgets开发中会经常用到它,

//主要是可以跨进程调用(appWidget由一个服务宿主来统一运行的)。

RemoteViewsmyRemoteViews=newRemoteViews(context.getPackageName(),R.layout.my_layout);

//myRemoteViews.setImageViewResource(R.id.imageView,R.drawable.png1);

//设置布局控件的属性(要特别注意)

myRemoteViews.setOnClickPendingIntent(R.id.btn,pendingIntent);

ComponentNamemyComponentName=newComponentName(context,TestActivity.class);

//负责管理AppWidget,向AppwidgetProvider发送通知。

提供了更新AppWidget状态,获取已经安装的Appwidget提供信息和其他的相关状态

AppWidgetManagermyAppWidgetManager=AppWidgetManager.getInstance(context);

myAppWidgetManager.updateAppWidget(myComponentName,myRemoteViews);

*当AppWidget从宿主中删除时被调用。

publicvoidonDeleted(Contextcontext,int[]appWidgetIds){

onDeleted"

super.onDeleted(context,appWidgetIds);

*当一个AppWidget实例第一次创建时被调用。

*比如,如果用户添加两个AppWidget实例,只在第一次被调用。

*如果你需要打开一个新的数据库或者执行其他对于所有的AppWidget实例只需要发生一次的设置,

*那么这里是完成这个工作的好地方。

publicvoidonEnabled(Contextcontext){

onEnabled"

super.onEnabled(context);

*当你的AppWidget的最后一个实例被从宿主中删除时被调用。

你应该在onEnabled(Context)中做一些清理工作,比如删除一个临时的数据库

publicvoidonDisabled(Contextcontext){

onDisabled"

super.onDisabled(context);

*接收到每个广播时都会被调用,而且在上面的回调函数之前。

*你通常不需要实现这个方法,因为缺省的AppWidgetProvider实现过滤所有AppWidget广播并恰当的调用上述方法。

*注意:

在Android1.5中,有一个已知问题,onDeleted()方法在调用时不被调用。

*为了规避这个问题,你可以像Grouppost中描述的那样实现onReceive()来接收这个onDeleted()回调。

publicvoidonReceive(Contextcontext,Intentintent){

onReceive"

super.onReceive(context,intent);

清单文件

manifestxmlns:

package="

com.ljq.activity"

versionCode="

1"

versionName="

applicationandroid:

icon="

@drawable/icon"

label="

@string/app_name"

activityandroid:

name="

.MainActivity"

主程序"

intent-filter>

actionandroid:

android.intent.action.MAIN"

categoryandroid:

android.intent.category.LAUNCHER"

/intent-filter>

/activity>

--TestActivity类为一个广播接收器,因为TestActivity继承自AppWidgetProvider-->

receiverandroid:

.TestActivity"

添加桌面控件"

android.appwidget.action.APPWIDGET_UPDATE"

meta-dataandroid:

android.appwidget.provider"

resource="

@xml/my_appwidget"

/receiver>

/application>

uses-sdkandroid:

minSdkVersion="

7"

/manifest>

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2