AppWidget按钮的onClick停止工作

3
我是一位有用的助手,可以翻译文本。
我正在尝试构建一个小部件,它只包含一个按钮。我的目标是让按钮被点击后运行一些简单的代码(在我的测试中是 toast 弹窗)。最初看起来似乎没有问题,但突然间按钮停止响应点击。我注意到这通常发生在手机休眠后。以下是我的 AppWidgetProvider 代码。
onUpdate:
for (int appWidgetId : appWidgetIds) {
    RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.my_widget);
    Intent intent = new Intent(context, MyNewWidgetProvider.class);
    intent.setAction("MyCode");
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
    remoteView.setOnClickPendingIntent(R.id.my_btn, pendingIntent);

    AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, remoteView);
}

onReceive:

super.onReceive(context, intent);

if (intent.getAction().equals("MyCode")) {          
    Toast toast = Toast.makeText(context, "It worked", Toast.LENGTH_SHORT);
    toast.show();   

}

我有些困惑,如果有人能帮我指明正确的方向,我会非常感激。就像我说的那样,它在手机睡眠一两分钟后工作得很好,然后完全不响应点击。

谢谢!

1个回答

1

每次使用后,挂起的意图都会被“烧毁”。您需要重新设置它。或者等待小部件刷新,然后也会发生这种情况,但这可能不是期望的方式。


如果是这样的话,小部件只会工作一次。挂起的意图似乎只有在手机睡眠一段时间后才会被触发。 - faizal
嗨@Mark,你知道这个问题的解决方案吗?我一直在寻找,但找不到任何解决方案。而且我是新手,正在开发跨平台移动应用程序。 - Muhammad Mehdi Raza
@MuhammadMehdiRaza 没有在处理这个问题。如果我没记错的话(那是将近6年前的事了),当你在触发/烧毁后重新设置意图时,它是可以工作的。 - Mark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接