我们不能onClickListener直接在小部件中使用视图。相反,我们应该将我们的IntentwithPendingIntent和setOnClickPendingIntentto view包裹起来。
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
// There maybe > 1 instance of our widget
for (int i : appWidgetIds) {
startBrowsing(context, appWidgetManager, i);
}
}
// Processing click on widget
private void startBrowsing(Context ctx,
AppWidgetManager appWidgetManager, int widgetID) {
RemoteViews widgetView = new RemoteViews(ctx.getPackageName(), R.layout.widget);
Uri uri = Uri.parse("http://www.google.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
PendingIntent pIntent = PendingIntent.getActivity(ctx, widgetID, intent, 0);
// viewID - our clickable view ID
widgetView.setOnClickPendingIntent(R.id.viewID, pIntent);
appWidgetManager.updateAppWidget(widgetID, widgetView);
}
Run Code Online (Sandbox Code Playgroud)
在 metadata.xml 中将更新周期设置为 0,因为我们手动更新它
android:updatePeriodMillis="0"
Run Code Online (Sandbox Code Playgroud)
并且不要忘记
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4672 次 |
| 最近记录: |