0
これは動作しません。受信者にメッセージは届きません。私は何時間も働いています。私がやろうとしているのは、別のAppContextクラスを使ってActivityを使わずにLocalBroadcastManagerを使うことです。別のクラスを使用しているアクティビティのないLocalBroadcastManagerを使用する
クラス1
import android.content.Context;
public class AppContext extends Application {
private static AppContext instance;
public AppContext() {
instance = this;
}
public static Context getContext() {
return instance;
}
}
クラス2
@Override
public void onResume() {
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//receive your message here
String message = intent.getStringExtra("message");
Log.d("receiver", "Got message: " + message);
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
};
LocalBroadcastManager.getInstance(AppContext.getContext()).registerReceiver(receiver,
new IntentFilter("custom-event-name"));
Class3の
Log.d("sender", "Broadcasting message");
Intent intent = new Intent("custom-event-name");
// You can also include some extra data.
intent.putExtra("message", "99999");
LocalBroadcastManager.getInstance(AppContext.getContext()).sendBroadcast(intent);