Я делаю приложение для Android, у которого есть MainActivity
в его onCreate проверить, нужно ли загружать файл. Проверка происходит в классе AsynchTask. У меня есть вторая активность PrefsActivity
, которая запускает Prefsfragment
для получения предпочтений.Android-переход от действий
Теперь, когда я возвращаюсь с PrefsActivity
, onCreate выдается снова. Но вся проверка не должна повториться.
код приводит к предпочтениям
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.preferences:
Intent intent = new Intent(this, PrefsActivity.class);
startActivityForResult(intent, 1);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Код для предпочтениям
public class PrefsActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragment()).commit();
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
Код для запуска Asynchtask в MainActivity
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
PropertiesManager.getUniqueInstance().loadProperties(PropertiesManager.PROPERTIES_FILE, this);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean auto_update = sharedPreferences.getBoolean("pref_autoUpdate", true);
File downloadFile = getExternalFilesDir("media/" + Downloader.DOWNLOAD_FILE_NAME);
if (auto_update || !downloadFile.exists()) {
try {
if (new Downloader(this).execute().get()) {
receiveBroadcast(this);
} else {
schedule = Parser.getUniqueInstance().parse(this);
ScheduleBuilder.getUniqueInstance().build(this, (DayBean) schedule.get(9));
}
} catch (InterruptedException ex) {
Log.e(TAG, ex.getMessage());
} catch (ExecutionException ex) {
Log.e(TAG, ex.getMessage());
}
} else {
schedule = Parser.getUniqueInstance().parse(this);
ScheduleBuilder.getUniqueInstance().build(this, (DayBean) schedule.get(9));
}
}
Я не вижу вашу точку зрения? Будьте более ясны –
Когда вы вернетесь из другой активности onResume(), вызывается, а не onCreate() –
onCreate также можно вызвать, если начальная активность была воссоздана. – gunar