2012-11-22 68 views
4

我正在構建一個用於學習目的的小部件,它只是在設置更新時間間隔的配置活動。它工作正常,我可以創建它的多個實例。 但是當我重新啓動手機時,鬧鐘管理器停止,並且小部件不會更新。 經過一些搜索和google'ng後,我得知我必須添加一個BOOT COMPLETE接收器 ,但經過多次嘗試,我沒有實現,所以任何人都有我的想法如何在小部件上添加該或任何良好的源代碼示例。手機重啓後恢復鬧鐘管理器

+0

定義「未能實施」。 http://whathaveyoutried.com? – njzk2

+0

你是什麼意思'我沒有執行'請詳細說明... –

+0

我試圖添加啓動完成接收器類似warpitz回答,但它沒有工作......我沒有太多時間來完全理解警報經理的概念,因爲時間很短,所以嘗試了幾個代碼,我從搜索得到,但沒有工作 – user1844755

回答

7

要在啓動時執行某些操作,只需執行以下操作。

首先在manifest,這是在應用程序代碼中加入:

<receiver android:name="AlarmReceiver"> 
    <intent-filter> 
     <action android:name="packagename.ACTION"/> 
     <action android:name="packagename.ACTION2"/> 
    </intent-filter> 
</receiver> 

<receiver android:name="BootSetter" > 
    <intent-filter> 
     <action 
      android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

爲了這個工作,你需要添加允許接收廣播的清單與以下行:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

然後你有一個類BootSetter:

public class BootSetter extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // Do your stuff 
    } 
} 

有是一個類似的帖子,雖然不完全相同here。這是關於中午每天跑鬧鐘。

+0

它是onRecieve中有問題的東西....我需要在那裏放置什麼代碼來重新激活所有實例的報警 – user1844755

+0

@ user1844755您需要將報警保存在sharedpreference或其他持久存儲中,然後再次設置它們,是的,每個人都是。就像你第一次設置它們一樣。 – Warpzit

0

我想你設置報警經理在其他類,然後AppWidgetProvider擴展類(widget類).Better你應該設置在的OnUpdate方法AppWidgetProvider擴展類(部件類)的alarmmanager那麼就沒有必要設置的開機後再次報警。