当前位置:编程学堂 > 系统重新启动我的进程后,AppWidget 单击丢失,

系统重新启动我的进程后,AppWidget 单击丢失,

  • 发布:2023-10-05 23:51

| 我正在制作一个应用程序小部件,但单击事件有问题,当系统终止小部件的进程并稍后重新启动时,单击事件会丢失。屏幕旋转后也会发生这种情况。 针对 SDK 版本 7 构建,并在模拟器 (2.1) 和 2.3.3 的真实设备上运行 我的 onUpdate 方法:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    for (int wid : appWidgetIds) {
        Log.i(TAG, \"onUpdate 小部件 #\" + wid);

        Intent意图 = new Intent(context, MyClass.class);
        Intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, wid);

        PendingIntent clickIntent = PendingIntent.getActivity(context, 0, 意图, PendingIntent.FLAG_UPDATE_CURRENT);

        RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.widget);
        widget.setOnClickPendingIntent(R.id.widget_layout, clickIntent);

        appWidgetManager.updateAppWidget(wid, widget);
    }

    super.onUpdate(上下文, appWidgetManager, appWidgetIds);
}
其中 R.id.widget_layout 是应用程序线性布局的 ID。我也尝试将此单击事件添加到文本视图中,但结果相同。我已经研究这个问题好几天了,发现一些人有同样的问题,但没有解决方案对我有用:(我也尝试了不同的待处理意图标志,但没有成功。 第二个问题是,当我将另一个应用程序小部件添加到主屏幕时,它不会对单击事件做出反应。在 logcat 中,我看到来自 onUpdate 方法“onUpdate widget #xy”的消息,但 appwidget 对点击没有反应。只有放置在主屏幕上的第一个应用程序小部件才会对点击做出反应,但仅限于一段时间内。有任何想法吗? ​​

相关文章