最小的Android小部件,APPWIDGET_DELETED和APPWIDGET_DISABLED意图从未收到

AndroidSlinger

我遇到的问题与之前提出的问题非常相似,但不完全相同。参考文献:1234

我已经编写了一个最小的Android小工具,以及APPWIDGET_DELETEDAPPWIDGET_DISABLED永远不会被接收。

在上面的参考文献1和2中,提出的解决方案是实现onReceive并明确寻找这些意图。但是,我在中插入了一个日志调用onReceive,并且可以确认这些意图都没有出现,但是APPWIDGET_UPDATEAPPWIDGET_ENABLED没有按预期出现在日志中。为了再次确认这一点,我还插入了onDeleted和的最小实现onDisabled,它们的主体仅由super对它们的断点的调用组成,而这些都从未实现。

参考文献3似乎可以通过简单地卸载并重新安装他的应用程序来解决他的问题,但这对我而言无效。实际上,我已经在多个仿真器映像以及实际设备上进行了尝试,其中一些是新鲜的,以前从未使用过以前的版本,并且仍然出现此问题。

根据参考文献中的回答说这些变通办法对他们有效,并且使用了onDeletedonDisabled方法的大量在线教程都没有提及它们实际上并不起作用,我将假定我一定做错了事,这不是Android中的错误。

这是我的最小清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.testwidgets">

    <application android:allowBackup="true"
        android:label="@string/app_name"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/AppTheme">

        <receiver android:label="Test Widget"
                  android:name="com.test.testwidgets.TestWidgetProvider"
                  android:exported="false">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            </intent-filter>
            <meta-data android:name="android.appwidget.provider"
                       android:resource="@xml/test_widget_info"/>
        </receiver>
    </application>

</manifest>

这是我最小的Java来源:

public class TestWidgetProvider extends AppWidgetProvider {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.w("Schedule", "On receive " + intent.getAction());
        super.onReceive(context, intent);
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        for (int widgetId : appWidgetIds) {
            RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.test_widget);
            appWidgetManager.updateAppWidget(widgetId, views);
        }
    }

    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        super.onDeleted(context, appWidgetIds);
    }

    @Override
    public void onDisabled(Context context) {
        super.onDisabled(context);
    }
}
常用软件

AppWidgetProvider要导出的需求,从而使核心操作系统进程坐标应用小部件(主机和提供者之间)可以谈论它。因此,android:exported="false"是不适当的。

老实说,我本来希望与提供程序无关的所有事情,而不仅仅是一些事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android AppWidget onUpdate并不总是更新小部件

来自分类Dev

带有小部件和多个待定意图的Android问题

来自分类Dev

Android:未收到额外的意图ID

来自分类Dev

Android AppWidget未更新

来自分类Dev

Android appwidget ViewStub

来自分类Dev

Android AppWidget未更新

来自分类Dev

将字符串从窗口小部件配置屏幕传输到AppWidget本身?

来自分类Dev

其他复合小部件未收到ChangeEvent

来自分类Dev

Android:从未收到广播ACTION_MY_PACKAGE_REPLACED

来自分类Dev

Android广播接收器未收到意图

来自分类Dev

Android-短信发送意图未收到100%的时间

来自分类Dev

Android-短信发送意图未收到100%的时间

来自分类Dev

ActivityNotFoundException 意图 + 小部件

来自分类Dev

Android小部件-使用setOnClickPendingIntent和remoteviews无法接收到Intent

来自分类Dev

Android中的appwidget listview更新问题

来自分类Dev

Android AppWidget中的行分隔线

来自分类Dev

Android用颜色更新AppWidget ImageView src

来自分类Dev

Android AppWidget中的行分隔线

来自分类Dev

Android AppWidget有时不更新

来自分类Dev

Android-基于日期的窗口小部件意图不会更改

来自分类Dev

RabbitMQ死信交换从未收到消息

来自分类Dev

Kotlin-从未收到MutableStateFlow Emmision

来自分类Dev

RabbitMQ死信交换从未收到消息

来自分类Dev

从未收到 AutoResponded 事件通知

来自分类Dev

如何创建可以进入主屏幕文件夹和主行(码头)的Android AppWidget?

来自分类Dev

当前活动未收到搜索意图

来自分类Dev

因意图呼叫而未收到广播

来自分类Dev

广播接收器未收到意图

来自分类Dev

当前活动未收到搜索意图