2016-06-20 39 views
0

我試圖從設置片段發送廣播並在其他活動中收聽廣播。我使用ActivityA的startActivityForResult開始設置活動。 SettingsActivity有一個靜態的片段SettingsFragment:Android:播放不在活動中收到

public static class SettingsFragment extends PreferenceFragment { 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.pref_general); 
      Preference rateApp = findPreference("rate_this_app"); 

      Preference abcd = findPreference("abcd"); 
      rateApp.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 
       @Override 
       public boolean onPreferenceClick(Preference preference) { 

       } 
      }); 




     abcd.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 
      @Override 
      public boolean onPreferenceClick(Preference preference) { 
       Intent intent = new Intent(getActivity(), ActivityA.class); 
       intent.setAction("abcd"); 
       getActivity().sendBroadcast(intent); 
      } 
     }); 
    } 
} 

從abcd.setOnPreferenceClickListener發送的廣播註冊在ActivityA但沒有收到有某種原因。是因爲活動在後臺,它不會收到廣播嗎?

+0

@jankigadhiya號我知道如何發送接收廣播,但這一個不工作出於某種原因。 – crysis

+0

如果您的活動已暫停,它將不會收到。 http://stackoverflow.com/questions/7890363/broadcastreceiver-and-paused-activity –

+0

嘗試調試,檢查活動A的onDestory是否已被調用?並顯示活動A代碼更好地理解 –

回答

0

如果您的活動處於暫停狀態,您將不會收到廣播。

Similar question

到另一種取決於你的目標。如果您的目標是更改應用程序中的某些設置,只要用戶進行更改,我會將其保存在SharedPreferences中。在ActiivityAonCreate方法中,我會從SharedPreferences中讀取它。 BroadcastReceivers用於通知開發者是否需要採取行動。例如,如果更改設置將更改用戶屏幕上的視圖,則BroadcastReceiver非常有用。你會得到通知並更新你的用戶界面。如果該頁面對用戶不可見,則不需要該頁面。

相關問題