我是 Android 开发新手。我设法编写了一个使用警报管理器每 30 分钟更新一次的小部件。这部分工作正常。
我现在还想在单击小部件时启用手动更新(即通过广播触发相同的 OnReceive(),无论是通过重复警报还是单击)。
我希望它会像在末尾添加两行一样简单(如下所示),但是当我单击小部件时,onClick 不起作用。实现我想要做的事情的最佳方式是什么?
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
//Update after 30 minutes
am.setInexactRepeating(AlarmManager.RTC, System.currentTimeMillis()+ 300, 18000000 , pi);
//Update manually by Clicking widget (this part not working)
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.my_widget_layout);
remoteViews.setOnClickPendingIntent(R.layout.my_widget_layout, pi);
最佳答案
您是否在代码中混合了 R.layout.my_widget_layout
和 R.id.my_widget_layout
。
应注意 Android 对所有生成的小部件项目使用 R.id.xyz
的引用 ID,而 R.layout.abc
用于您的 View (布局)
我预计在线会出现错误:
remoteViews.setOnClickPendingIntent(R.id.my_widget_layout, pi);
关于android - 将 onclick 小部件更新添加到现有的 AlarmManager 触发器更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12207370/