第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么我的 updateAppWidget 方法對所有操作都沒有反應(yīng)?

為什么我的 updateAppWidget 方法對所有操作都沒有反應(yīng)?

RISEBY 2023-03-17 16:12:37
誰能告訴我我的廣播接收器有什么問題,因?yàn)樗鼘r(shí)間的變化沒有反應(yīng)?它確實(shí)調(diào)用了 updateAppWidget 方法,因?yàn)槲艺陲@示 Toast 消息,但時(shí)鐘小部件不更新時(shí)間。我已經(jīng)嘗試了來自 stackoverflow 的無數(shù)解決方案,包括為 TIME_TICK、TIME_CHANGED、TIME_ZONE_CHANGED 添加意圖過濾器操作,但到目前為止我沒有運(yùn)氣。我知道我真的接近一個(gè)合適的解決方案,但我需要有人指出正確的方向。我的 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);                }            }        }    }}當(dāng)小部件啟動(dòng)時(shí),時(shí)間設(shè)置正確,顯然 updateAppWidget 方法啟動(dòng),但我通過更改充電/不充電狀態(tài)從 BroadcastReceiver 類調(diào)用它我收到 Toast 消息但保持不變,而邏輯上它應(yīng)該更新為 updateAppWidget 函數(shù)是從 BroadcastReceiver 正確調(diào)用。我可以從比我聰明的人那里得到一些建議嗎?
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊

似乎我試圖以錯(cuò)誤的方式調(diào)用小部件的所有實(shí)例。在我的 AppWidgetProvider 類中將代碼添加到 onUpdate 方法之后:


ComponentName thisWidget = new ComponentName(context,

            NixieClock.class);

    int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);

并在 BroadcastReceiver 類代碼中更改為:


        Bundle extras = intent.getExtras();

    if (extras != null) {

        int appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);

        if (appWidgetId != -1)

到:


        ComponentName thisWidget = new ComponentName(context,

            NixieClock.class);

    int[] allWidgetIds = AppWidgetManager.getInstance(context).getAppWidgetIds(thisWidget);

    for (int appWidgetId : allWidgetIds)

一切都像夢一樣工作;)


查看完整回答
反對 回復(fù) 2023-03-17
  • 1 回答
  • 0 關(guān)注
  • 288 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號