手机桌面小组件
public class AppWidget extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Log.d("MyAppWidgetProvider", "调用了onUpdate方法"); Intent intent = new Intent(context, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.remoteview); remoteViews.setImageViewResource(R.id.image, R.drawable.ic2); remoteViews.setTextViewText(R.id.text, "我是桌面小组件"); remoteViews.setOnClickPendingIntent(R.id.image, pendingIntent); appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);//用updateAppWidget来更新remoteViews的状态 } }
定义一个类继承AppWidgetProvider重写onupdate方法
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <ImageView android:id="@+id/image" android:layout_width="match_parent" android:layout_height="200dp" /> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" />
自定义布局文件remoteView
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout="@layout/remoteview" android:minWidth="100dp" android:minHeight="100dp" android:updatePeriodMillis="86400000"> </appwidget-provider>
xml文件appwidget
<receiver android:name=".AppWidget"> <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget"/> <!--name的值是固定的,只能是android.appwidget.provider--> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/><!--必须得有这个action--> </intent-filter> </receiver>
配置文件声明appwidget,运行后手机添加桌面小组件,点击图片会进入Pendingintent的activity