
基本上,我有这个小部件,单击它应该显示一个Toast.
public class WidgetActivity extends appwidgetprovider { @OverrIDe public voID onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIDs) { for (int i = 0; i < appWidgetIDs.length; i++) { int appWidgetID = appWidgetIDs[i]; Intent intent = new Intent(context, WidgetActivity.class); intent.setAction("ActionOne"); PendingIntent pendingIntent = PendingIntent.getbroadcast(context, 0, intent, 0); RemoteVIEws vIEws = new RemoteVIEws(context.getPackagename(), R.layout.Widget_layout); vIEws.setonClickPendingIntent(R.ID.linLayWiget, pendingIntent); appWidgetManager.updateAppWidget(appWidgetID, vIEws); } } @OverrIDe public voID onReceive(Context context, Intent intent) { Log.e("YYY","YYYY"); Toast.makeText(context, "AAA", 1500).show(); if (intent.getAction().equals("ActionOne")) { Log.e("X","X"); Toast.makeText(context, "I'm CliCKED!", 1500).show(); } super.onReceive(context, intent); } }表现:
... <receiver androID:name="WidgetActivity" androID:label="FXMaster" androID:icon="@drawable/assiconwi"> <Meta-data androID:name="androID.appWidget.provIDer" androID:resource="@xml/WidgetprovIDer" /> <intent-filter> <action androID:name="androID.appWidget.action.APPWidget_UPDATE"></action> </intent-filter> </receiver>...但是,一旦单击小部件,则什么也不会发生.任何想法可能有什么问题吗?
谢谢!
解决方法:
我是来救你的
1)应该调用onUpdate重写(例如,在方法的开头)
super.onUpdate(context, appWidgetManager, appWidgetIDs);2)由于这一行:
intent.setAction("ActionOne");您的意图可以忽略,因此代码不会属于onReceive中的if.添加唯一标识符,就像在此帖子中所做的那样Android keeps caching my intents Extras, how to declare a pending intent that keeps fresh extras?
最后一点,我将更改类名,因为它实际上不是活动.
干杯.
总结以上是内存溢出为你收集整理的Android Widget不会点击全部内容,希望文章能够帮你解决Android Widget不会点击所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)