我正在开发一个API级别21的Android应用程序,我正在播放一条消息,但发生了一些不寻常的事情。像其他应用程序可以使用它。
任何人都可以帮助我解决如何在API 21中发送粘性广播。
//MyActivity.java
class myActivity extends Activity {
//MyDialog dialog initialized in onCreate
...
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//toast "Broadcast received"
}
}
}
//MyDialog.java
class MyDialog extends Dialog {
//m_context = incoming context from MyActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnCLickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
m_context.sendStickyBroadcast(intent);
}
});
}
}
//AndroidManifest.xml
<activity android:name=".MyActivity" />
<receiver android:name="MyReceiver" android:enabled="true">
<intent-filter >
<action android:name="android.intent.action.RUN"/>
</intent-filter>
</receiver>
答案 0 :(得分:0)
是的,我在谷歌搜索后很快回答。
此方法在API级别21中已弃用。不应使用粘性广播。它们不提供安全性(任何人都可以访问它们),没有保护(任何人都可以修改它们)以及许多其他问题。建议的模式是使用非粘性广播来报告某些内容已发生变化,并使用其他机制让应用程序在需要时检索当前值。