2011-01-29 53 views
1

我有一個服務,我想更新活動顯示中的數字。我有一個明確的意圖已經成立,我用它來啓動,如果它沒有運行的活動,我已經在形式加入廣播接收到我的活動:明確的意圖與非班級BroadcastReceiver

public BroadcastReceiver mReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Log.d(LOG_NAME, "Received broadcast"); 
     } 
    }; 

但它從來沒有收到任何廣播。我懷疑這是因爲我的明確意圖是MyClass.class(它不是​​接收者本身),而不是實際的接收者,這是一個成員。 有沒有人有建議,這是否可能與明確的意圖?我可以使用一種隱含的意圖,但這似乎有點浪費,因爲這只是一個特定的課程。

回答

0

我認爲你可以有一個單獨的BroadcastReceiver,它接收顯式廣播並更新共​​享首選項,並且你的活動包含一個onSharedPreferenceChangeListener,它可以更新活動。

+1

這將是一個非常乾淨的做法。與此同時,我沒有使用明確的意圖(https://github.com/spookypeanut/Wake-Me-At/blob/master/src/uk/co/spookypeanut/wake_me_at/Alarm.java),我很可能會轉向您在未來建議的方式。 – spookypeanut 2011-07-25 13:34:16

0

那就是不行。你應該把你的BroadcastReceiver作爲一個獨立的類。

+0

然後我該如何讓它在活動的gui中更新一個值? – spookypeanut 2011-01-30 10:32:36