谁能告诉我我的广播接收器有什么问题,因为它对时间的变化没有反应?它确实调用了 updateAppWidget 方法,因为我正在显示 Toast 消息,但时钟小部件不更新时间。
我已经尝试了来自 stackoverflow 的无数解决方案,包括为 TIME_TICK、TIME_CHANGED、TIME_ZONE_CHANGED 添加意图过滤器操作,但到目前为止我没有运气。我知道我真的接近一个合适的解决方案,但我需要有人指出正确的方向。
我的 BroadcastReceiver 类代码:
package com.vulterey.nixieclockwidget;
import android.appwidget.AppWidgetManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
public class Synchronize_Time extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Bundle extras = intent.getExtras();
if (extras != null) {
int appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
if (appWidgetId != -1) {
if ((action.equals(Intent.ACTION_TIME_TICK)) ||
(action.equals(Intent.ACTION_TIME_CHANGED)) ||
(action.equals(Intent.ACTION_TIMEZONE_CHANGED)) ||
(action.equals(Intent.ACTION_POWER_CONNECTED))) {
NixieClock.updateAppWidget(context, AppWidgetManager.getInstance(context), appWidgetId);
}
}
}
}
}
当小部件启动时,时间设置正确,显然 updateAppWidget 方法启动,但我通过更改充电/不充电状态从 BroadcastReceiver 类调用它我收到 Toast 消息但保持不变,而逻辑上它应该更新为 updateAppWidget 函数是从 BroadcastReceiver 正确调用。我可以从比我聪明的人那里得到一些建议吗?
慕无忌1623718
相关分类