【问题标题】:Widget becomes a different widget from another app [duplicate]小部件成为与另一个应用程序不同的小部件[重复]
【发布时间】:2012-02-16 05:20:27
【问题描述】:

我可能在做一些愚蠢的事情,但我的应用小部件有一个有趣的问题。时不时地,通常在添加到主屏幕后,它会从另一个应用程序转换为小部件。此小部件在特定手机上始终相同,但在手机之间有所不同。几秒钟后,小部件返回到它应有的外观。虽然对我来说这不是问题,因为它只是一个临时问题,但我收到来自用户的电子邮件,他们说该小部件永久卡在另一种形式中。

以下是任何可能相关的文件:

很抱歉附上这么多,但我真的不知道从哪里开始。我希望对于更熟悉 api 的人来说,问题会立即显现出来。对于任何糟糕的代码,我也深表歉意,因为这是我第一个严肃的项目,只是一个业余爱好。

【问题讨论】:

  • 包含您的 AndroidManifest.xml 怎么样?我的第一个怀疑是您的包名称或意图注册或其他内容有问题。
  • 除此之外:库存、某些供应商 ROM 还是自定义的?
  • 我所说的库存是指香草安卓。愚蠢的我。
  • 我已经添加了清单。问题出现在股票模拟器以及手机上的 HTC sense 和 cyanogen 上。我不能为别人说话。

标签: android android-widget


【解决方案1】:

我的小部件中遇到了与您描述的完全相同的问题,并且搜索了很多解决方案但找不到任何解决方案。我最终做的是某种解决方法,在我的情况下似乎可以正常工作。我所做的是以下内容,而不是直接从 onUpdate() 方法更新小部件,而是启动了一个服务来处理更新然后自行终止。这在模拟器和更新期间小部件卡住的设备上解决了它。 这是一个示例代码:

AppWidgetProvider:

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    context.startService(new Intent(context, WidgetService.class));
}

服务:

@Override
public void onStart(Intent intent, int startId) {
    started(intent);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    started(intent);
    return START_STICKY;
}


private void started(Intent intent) {
    //update here the widgets
    Context context = getApplicationContext();
    updateWidgets(context);
    stopSelf();//killing the service
}

private void updateWidgets(Context context) {
    AppWidgetManager appmanager = AppWidgetManager.getInstance(context);
    ComponentName cmpName = new ComponentName(context, widgetClass);
    int[] widgetIds = appmanager.getAppWidgetIds(cmpName);
    RemoteViews rView = new RemoteViews(context.getPackageName(), layoutId);
    for (int wid : widgetIds) {
        //all updates here
        rView.setTextViewText(tvId, desc);
        appmanager.updateAppWidget(wid, rView);
    }
}

请注意为什么这种解决方法可以解决问题,但好处是它确实可以解决问题 希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多