Приемникът за излъчване на Android не работи с приемник за намерения

Здравейте, разработих едно малко приложение за Android, в което използвам една дейност, една услуга за намерение и един приемник за излъчване. Така че кодът ми изглежда така:

public class Main_Activity extends Activity {

    private ResultReceiver resultReciver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_);
        Log.i("***************************88", "inside activity on create");

        IntentFilter filter = new IntentFilter("com.nilkash.broadcast.receiver");
        resultReciver = new ResultReceiver();
        registerReceiver(resultReciver, filter);
        //LocalBroadcastManager.getInstance(this).registerReceiver(resultReciver, filter);

        Intent intent = new Intent(this, ExampleService.class);
        startService(intent);

    }

    public class ResultReceiver extends BroadcastReceiver{

        public ResultReceiver()
        {

        }
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            // TODO Auto-generated method stub
            Log.i("**********************", "inside broadcast receiver: ");
        }

    }

}

И услуга за намерение

public class ExampleService extends IntentService{


    public ExampleService(String value)
    {
        super(value);
    }

    public ExampleService()
    {
        super("");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        // TODO Auto-generated method stub
        Log.i("********************************", "inside intetn reciver: ");
        Intent broadcastIntent = new Intent();
        broadcastIntent.setAction("com.nilkash.broadcast.receiver");
        //broadcastIntent.putExtra("value", "nilkash");
        sendBroadcast(intent);
        //LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
    }
}

В манифестния файл дефинирам услуга. Така че проблемът ми е, че стартирам услугата от активност и тя работи добре. От услуга при намерение за получаване изпратих един излъчващ приемник, но той не слуша в моя излъчващ приемник.

Правя ли нещо грешно? Нужда от помощ. Благодаря ти.


person nilkash    schedule 29.07.2013    source източник


Отговори (1)


Има грешка: sendBroadcast(intent);. Трябва да бъде друг обект на намерение (broadcastIntent).

person esentsov    schedule 29.07.2013
comment
Здравейте, esebtsov, благодаря ви за помощта; но не получавам вашето решение. Можете ли да го обясните по-подробно. - person nilkash; 29.07.2013
comment
Във вашия метод на обслужване onHandleIntent вие изпращате излъчване чрез извикване на:sendBroadcast(intent);. Но трябва да извика sendBroadcast(broadcastIntent); Там intent има намерение, което е използвано за стартиране на услугата. - person esentsov; 29.07.2013