Jon*_*Jon 2 android broadcast android-intent preferencescreen
是否可以直接从PreferenceScreen发送广播意图?
例如,我想做类似以下的事情:
<PreferenceScreen android:title="Enable">
<intent android:action="com.otherapp.ENABLE" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这个时,应用FC的w/ActivityNotFoundException.
BTW,接收器简单定义为:
<receiver android:name=".Receiver">
<intent-filter>
<action android:name="com.otherapp.ENABLE" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
此广播接收器已经过测试,可以正常工作,但不是来自PreferenceScreen.
TIA!
小智 5
您可以扩展Preference以使其在单击时发送广播:
public class BroadcastPreference extends Preference implements Preference.OnPreferenceClickListener {
public BroadcastPreference(Context context, AttributeSet attrs) {
super(context, attrs);
this.setOnPreferenceClickListener(this);
}
@Override
public boolean onPreferenceClick(Preference preference) {
getContext().sendBroadcast(getIntent());
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在xml文件中使用自定义首选项
<com.app.example.BroadcastPreference android:title="Enable">
<intent android:action="com.otherapp.ENABLE" />
</com.app.example.BroadcastPreference>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |