1
BroadCastreceiverを使用してアプリケーションでアクティビティをリフレッシュする際に問題があります。私はいくつかの計算を行っているサービスを使用していますし、onDestroy()
方法で、私はこれをやっている:Android BroadCastReceiverはすべてのアクティビティをリフレッシュします
@Override
public void onDestroy(){
super.onDestroy();
Intent intent = new Intent("finish");
this.sendBroadcast(intent);
}
、私の活動に、私はこれやってる:
receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("finish")) {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
Intent previewMessage = new Intent(Tutorial.this, Tutorial.class);
parentActivity.startChildActivity("Tutorial", previewMessage);
progressBar.setVisibility(View.GONE);
sync.setImageResource(R.drawable.sync_icon2);
final SharedPreferences isLogged = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = isLogged.edit();
editor.putBoolean("getProgBar", false);
editor.commit();
}
}
};
registerReceiver(receiver, new IntentFilter("finish"));
を私はその機能を持っていますすべての私の活動と問題は、私がサービスを停止する前に2-3人を変更すると、そのあともLogCatのログにその機能を持つ他の活動のログが表示されますが、私は現在これらの活動には参加していません。それらはアクティビティスタックのどこかにあります。しかし、私が理解できないことは、(たとえ視覚的に見ることができないとしても)それらを再読み込みし、この種の問題を防ぐ方法です。私は自分が行っている活動だけをリフレッシュする必要があります。
ありがとう!