android - 将 onclick 小部件更新添加到现有的 AlarmManager 触发器更新

标签 android widget onclick broadcastreceiver alarmmanager

我是 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_layoutR.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/

相关文章:

javascript - 具有相似 id 模式的按钮的单个 onclick 函数 - JavaScript

java - android fragment 使用 onCreateView 但无法添加 firebase

android - 获取 ArrayList<HashMap<String, String>> 值

android - 复制操作栏嵌入式选项卡

python - spinbox 和 Scale 在 Tkinter 中互相改变值

php - wordpress 计数小部件

javascript - 如何使用aspx参数调用html按钮onclick javascript函数?

android - Android 中的 Material 形式

css - Symfony/Twig - 样式化表单小部件

javascript - onclick 和 <a> 无法正常工作