android AppWidget onClick触发器

我有一个应用程序小部件,仅在单击小部件时,我才想将文本(“ OnClicked”)打印到控制台(或吐司)。即,我不希望当前重启设备时打印文本。

  1. 是否只有在单击窗口小部件时才触发某种方法?如果是这样,那怎么办?
  2. 如果仅在单击窗口小部件时才想执行操作:是否需要将updatePeriodMillis设置为0值? (android:updatePeriodMillis =“ 0”)

这是我的appwidgetprovider的实现

    @Override
    public void onReceive(Context context,Intent intent) {
        super.onReceive(context,intent);
    }

    @Override
    public void onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIds) {
        // Get all ids
        ComponentName thisWidget = new ComponentName(context,MyWidgetProvider.class);
        int[] allWidgetIds = appWidgetManager.getappWidgetIds(thisWidget);
        for (int widgetId : allWidgetIds) {
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.my_widget_provider_layout);
            // Register an onClicklistener
            Intent intent = new Intent(context,MyWidgetProvider.class);
            intent.setaction(AppWidgetManager.actION_APPWIDGET_UPDATE);
            intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,appWidgetIds);

            PendingIntent pendingIntent = PendingIntent.getBroadcast(context,intent,PendingIntent.flaG_UPDATE_CURRENT);
            remoteViews.setOnClickPendingIntent(R.id.main_layout,pendingIntent);
            appWidgetManager.updateAppWidget(widgetId,remoteViews);
        }


        Log.d("TAG","OnClicked");
    }

这是清单部分:

<receiver android:name="com.example.MyWidgetProvider" >
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>
    <meta-data android:name="android.appwidget.provider"
        android:resource="@xml/my_widget_info" />
</receiver>
lwword 回答:android AppWidget onClick触发器

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3089901.html

大家都在问