【发布时间】:2016-06-20 04:31:30
【问题描述】:
我正在尝试从设置片段发送广播并在另一个活动中收听它。我从 ActivityA 开始使用 startActivityForResult 设置活动。 SettingsActivity 有一个静态片段 SettingsFragment:
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 中注册,但由于某种原因未在此处接收。是不是因为activity在backstack里所以收不到广播?
【问题讨论】:
-
@jankigadhiya 不。我知道如何发送接收广播,但这个由于某种原因无法正常工作。
-
如果您的 Activity 暂停,它将无法接收。 stackoverflow.com/questions/7890363/…
-
尝试调试,检查Activity A的onDestory是否已经被调用?并显示 Activity A 代码以便更好地理解
-
@GokhanArik 这似乎是我的情况。有什么替代方法吗?
标签: android android-fragments broadcastreceiver