У меня проблема с использованием BroadCastreceiver для обновления действий в моем приложении.Я использую сервис, который выполняет некоторые вычисления, и в методе onDestroy()
я делаю это:
@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 другие действия, которые также имеют эту функцию, но я неВ настоящее время на этих мероприятиях.Они просто где-то в стеке активности.Но вещь, которую я не могу понять, это перезагрузить их (даже если я не вижу это визуально) и как предотвратить подобные проблемы.Мне нужно обновить только активность, в которой я нахожусь.
Спасибо!