myButton - это кнопка, которая при нажатии должна получать трансляцию с фона IntentService. Но трансляция никогда не принимается. Однако, если я перемещаю широковещательный приемник вне функции myButton.setOnClickListener, я начинаю получать трансляции из моей фоновой службы.Android-приемник с трансляцией вещания внутри onClickListener
Есть ли способ заставить трансляцию получать трансляции в функции setOnClickListener?
public class MainActivity extends Activity {
private BroadcastReceiver broadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myButton = (Button)findViewById(R.id.button1);
myButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent intent) {
Toast.makeText(MainActivity.this, "BROADCAST RECEIVED", Toast.LENGTH_SHORT).show();
stopService(msgIntent);
}
};
}
});
public void onResume()
{
super.onResume();
IntentFilter filter = new IntentFilter(SimpleIntentService.ACTION_RESP);
filter.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(broadcastReceiver,filter);
}
public void onPause()
{
unregisterReceiver(broadcastReceiver);
super.onPause();
}
}
Мне пришлось вытащить широковещательный приемник по методу onClick. Это работает и широковещательный получил:
public class MainActivity extends Activity {
private BroadcastReceiver broadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myButton = (Button)findViewById(R.id.button1);
myButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
//do extra stuff
}
});
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent intent) {
Toast.makeText(MainActivity.this, "BROADCAST RECEIVED", Toast.LENGTH_SHORT).show();
stopService(msgIntent);
}
};
}
}
Где вы зарегистрировать '' BroadcastReceiver? – shhp
что вам нужно сделать, это зарегистрировать приемник нажатием кнопки. –