Как мне отправитьBroadcast (intent) из myDialog и получить в myActivity?

Итак, я пытаюсь разобраться с фильтрами BroadcastReceivers и Intent. У меня есть настраиваемый диалог, который я создаю в MyActivity. В диалоговом окне у меня есть кнопка. Когда нажимается кнопка, я хочу отправить трансляцию, которую примет приемник MyActivity. Вот что у меня сейчас:

//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();
                intent.setAction("android.intent.action.RUN");
                m_context.sendBroadcast(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, приложение вылетает. Может ли кто-нибудь направить меня в правильном направлении?

11
задан Kara 1 April 2014 в 21:29
поделиться