アプリのすべてのアクティビティでカスタムタイトルバーを使用しています。タイトルバーを操作したい放送受信機がありますが、
これはカスタムアプリケーションクラスにありますが、
public class MyApplication extends Application {
public static final String ACTION_RESPONSE = "org.company.com.action.MESSAGE_PROCESSED";
private final BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
MyApplication.log("received");
//hide the visible progress dialog spinner in title bar
}
};
public BroadcastReceiver getBroadcastReceiver() {
return receiver;
}
}
私はこれを私のアクティビティのすべてのonCreateに持っています。
MyApplication application = ((MyApplication) getApplication());
registerReceiver(application.getBroadcastReceiver(), new IntentFilter(MyApplication.ACTION_RESPONSE));
私がやろうとしているのは、これを行うための優れたOOP方法を見つけることです。アクティビティでbraodcastreceiverが宣言されている限り、すべてのアクティビティでビューを操作するbroadcastreceiverをバインドできますが、同じコードを15回以上コピーして貼り付けるのは意味がありません。次に、次の問題は、MyApplicationクラス内では、どのビューにもアクセスできないことです。誰かがこの問題を経験しましたか?