Мое приложение для Android запускается под действием LoadingActivity
.Это действие загружает несколько файлов моего веб-сервера.Сначала он проверяет метку времени в текстовом файле на моем сервере и проверяет, является ли эта метка новее, чем метка, хранящаяся на устройстве.Если это так, он загружает содержимое другого файла на мой веб-сервер и сохраняет его в файл на устройстве.Когда все это будет сделано, я хотел бы перейти к другому занятию, MainActivity
.Я делаю все это в методе onWindowFocusChanged
следующим образом:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
URL urlUpdated = null;
BufferedReader in = null;
try {
urlUpdated = new URL("http://someurl.com/timestamp.txt");
in = new BufferedReader(new InputStreamReader(urlUpdated.openStream()));
String updated = "";
String inputLine;
while ((inputLine = in.readLine()) != null)
updated = updated + inputLine;
in.close();
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
String lastUpdated = preferences.getString("lastUpdated", "");
if (!lastUpdated.equals(updated)) {
// Download JSON file (schedule)
String schedule = "";
URL urlSchedule;
urlSchedule = new URL("http://someurl.com/downloadMe.txt");
in = new BufferedReader(new InputStreamReader(urlSchedule.openStream()));
while ((inputLine = in.readLine()) != null)
schedule = schedule + inputLine;
Log.d(LOG_TAG, schedule);
// Write schedule to file
String PATH = "/data/data/com.codeinacup.NibeFestival/";
File file = new File(PATH + "Schedule.json");
FileOutputStream fileOutputStream = new FileOutputStream(file);
OutputStreamWriter writer = new OutputStreamWriter(fileOutputStream);
writer.write(schedule);
writer.close();
fileOutputStream.close();
// Update last updated preference
editor.putString("lastUpdated", updated);
editor.commit();
}
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
// Go to next MainActivity
Intent scheduleIntent = new Intent(this, MainActivity.class);
startActivity(scheduleIntent);
}
Моя проблема в том, что при этом мои LoadingActivity
будут отображаться, но снова исчезают очень быстро экран станет черным на пару секунд, а затем появится MainActivity
.Затем, когда пользователь нажмет кнопку «Назад», он снова вернется к MainActivity
.Я обнаружил очевидным, что кнопка «Назад» должна вернуться к LoadingActivity
.
Итак, мой вопрос: как мне правильно реализовать действие для загрузки?Моя идея загрузки деятельности:
- Отображается при запуске приложения
- Загрузка файлов
- Переход к следующему действию,
MainActivity
- Если при
MainActivity
и нажатии кнопки назад, приложение должно выйти