내 응용 프로그램에서 IntentService 클래스로부터 내 Activity를 통보해야합니다. 그 목적을 위해 LocalBroadcastManager를 사용하고 있습니다. 하지만 내 방송 수신기의 onReceive에서 아무것도받지 못합니다. 여기 제가 작성한 내용이 있습니다.LocalBroadcastManager가 예상대로 작동하지 않습니다.
내 BaseActivity에서 수신자를 등록했습니다.
public class BaseActivity extends FragmentActivity implements App {
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
}
@Override
protected void onResume() {
super.onResume();
LocalBroadcastManager.getInstance(this).registerReceiver(
mMessageReceiver, new IntentFilter(custom-event-name));
}
@Override
protected void onPause() {
super.onPause();
LocalBroadcastManager.getInstance(this).unregisterReceiver(
mMessageReceiver);
}
// Our handler for received Intents. This will be called whenever an Intent
// with an action named "custom-event-name" is broadcasted.
BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
System.out.println("Overlay Message" +bundle.getString("message"));
}
};
}
내 RegisterAlarmIntentService 클래스에서 로컬 방송을 보내고 있습니다.
public class RegisterAlramIntentService extends WakefulIntentService implements
APIConstants {
public RegisterAlramIntentService() {
super("AlarmService");
}
@Override
public String getTag() {
return "AlarmService";
}
@Override
protected void onHandleIntent(Intent intent) {
System.out.println("Working till here fine In RegisterAlarm");
Bundle bundle = intent.getExtras();
Intent localIntent = new Intent(custom-event-name);
localIntent.putExtras(bundle);
LocalBroadcastManager.getInstance(this).sendBroadcast(
localIntent);
}
}
onHandleIntent() 메서드가 호출됩니다. 그러나 수신자의 onReceive()에는 아무 것도 수신되지 않습니다. 도와주세요. 미리 감사드립니다 !!
내가 이벤트 이름은 단순히 문자열이 될 수 있는지 잘 모르겠습니다 참조하십시오. – user2781627
네, 그게 정확히 제가 한 일입니다 ... custom-event-name은 실제로 제가 사용한 정적 상수입니다. – user2781627
예 내 응용 프로그램의 다른 모든 활동을 확장하는 데 사용한 기본 활동이며 응용 프로그램이 포 그라운드에 있고 사용자가이 응용 프로그램과 상호 작용할 수있을 때이 작업을 수행합니다. – user2781627