2015-04-29 39 views
1

我正在API Level 21开发一个android应用程序,我正在广播一条消息,但发生了一些不寻常的事情。像另一个应用程序可以使用它。Android中sendSticyBroadcast()的缺点是什么?

谁能帮我在如何在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> 
+1

我还添加了 - 允许应用程序广播粘性意图。 – hitesh141

+0

- 正常的广播意图在系统发送和处理后不再可用。 : - 使用sendStickyBroadcast(意图) : - 相应的意图是粘性的,这意味着您发送的意图在广播完成后仍然存在。 : - 因为这些,其他人可以通过registerReceiver(BroadcastReceiver,IntentFilter)的返回值快速检索数据。 : - 与sendBroadcast(Intent)相同。 – hitesh141

回答

0

发送置顶广播是的,我已经foud他google搜索了很多后应答。

此方法在API级别21中已弃用。不应使用粘滞广播。它们不提供任何安全性(任何人都可以访问它们),不提供保护(任何人都可以修改它们)以及其他许多问题。推荐的模式是使用非粘性广播来报告某些事情已经发生变化,另一种机制是应用程序在需要时检索当前值。