android widget開發模闆是本文要介紹的内容,主要是來了解并學習android widget開發應用,android
widget中使用了java語言開發比w3c的widget運作效率提高了不少,可以做更多的事情調用系統的api,除了ui上的限制外,我們可以考慮幫助系統完善一些appwidget,android 123給出大家一個開發widget的模闆。
public class cwjwidget extends appwidgetprovider {
@override
public void onupdate(context context, appwidgetmanager appwidgetmanager,
int[] appwidgetids) {
context.startservice(new intent(context, updateservice.class)); //這裡建立一個服務,防止出現等待逾時對話框
}
public static class updateservice extends service { //這個内部的服務我們推薦新開一個線程操作一些容易阻塞的情況,比如網絡下載下傳等等
@override
public void onstart(intent intent, int startid) {
remoteviews updateviews = buildupdate(this);
componentname thiswidget = new componentname(this, cwjwidget.class);
appwidgetmanager manager = appwidgetmanager.getinstance(this);
manager.updateappwidget(thiswidget, updateviews);
}
public remoteviews buildupdate(context context) {
resources res = context.getresources();
remoteviews updateviews = new remoteviews(
context.getpackagename(), r.layout.main); //主widget的layout布局
pendingintent pendingintent = pendingintent.getactivity(context,
0 /* no requestcode */,
new intent(android.provider.settings.action_device_info_settings),
0 /* no flags */);
updateviews.setonclickpendingintent(r.id.ui, pendingintent); //單擊view打開intent,目标為系統資訊,就是上面的action位置
updateviews.settextviewtext(r.id.info,
android.os.build.version.codename + " " +
android.os.build.id); //這裡是api的擷取系統版本的方法
updateviews.settextviewtext(r.id.changelist,
android.os.build.fingerprint
);
return updateviews;
public ibinder onbind(intent intent) {
return null;
}
有關涉及到的 androidmanifest.xml内容
xml version="1.0" encoding="utf-8"?>
manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android123.widget"
android:versioncode="1"
android:versionname="1.0">
<uses-sdk android:minsdkversion="3" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".buildwidget" android:label="android123_cwj">
<intent-filter>
<action android:name="android.appwidget.action.appwidget_update" />
intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
receiver>
<service android:name=".cwjwidget$updateservice" />
application>
/manifest>
android manifest.xml上面提到的 \res\xml\widget.xml檔案内容
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minwidth="150dip"
android:minheight="72dip"
android:updateperiodmillis="0"
android:initiallayout="@layout/widget" />
有關 main.xml的内容為
linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ui"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="6dip"
>
<textview
android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:textsize="18dip"
/>
android:id="@+id/changelist"
android:layout_margintop="4dip"
android:textsize="9dip"
/linearlayout>
小結:android widget開發模闆解析的内容介紹完了,希望通過android widget開發内容的學習能對你有所幫助!