2016-02-11 7 views
1

У меня есть приложение, которое должно запускать некоторые операции загрузки (операции ввода-вывода) перед переключением на другую активность, которая отображает загруженную информацию. Я хотел бы полностью загрузить информацию, прежде чем переключаться, и это вызывает некоторые проблемы с дизайном. Возможно, я мог бы использовать AsyncTask для работы в фоновом режиме, но с точки зрения дизайна я не хочу, чтобы весь контекст приложения был просочился, чтобы отвечать на результаты. Понятие Service выглядит более подходящим для моих потребностей.
Так что позвольте мне обозначить ситуацию, которую я не могу решить с точки зрения дизайна. Запускается приложение, которое вызывает создание определенной активности и т. Д. Это создает службу, которая выполняет операции ввода-вывода в фоновом режиме. По завершении приложения приложение меняет действие на указанное. Вопрос в том, как я должен обрабатывать ситуацию, когда сервис завершает работу, пока приложение находится в фоновом режиме. Как программист, я бы хотел, чтобы мое приложение снова открыло первое действие и изменилось на следующий или просто начиналось с «следующего». Есть идеи?Как изменить активность, когда приложение находится в фоновом режиме

+0

Вы можете начать нужную активность с вашего сервиса. – Rohit5k2

+0

Может ли активность всплывать мгновенно или когда пользователь возвращается к приложению? Первый вариант не нужен. – Fattum

+0

Если вы начнете с сервиса, он появится сразу. – Rohit5k2

ответ

1

Я хотел бы сделать мое приложение либо возобновить первое действие и изменение Insta к следующему одной

Вы могли бы это. При обработке вашей службы заканчивается сохранить значение в SharedPreference как этот

Context ctx = getApplicationContext(); 
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.putBoolean("LoadNewActivity", true); // or false 
editor.commit(); 

Теперь сделать это в пусковой деятельности onCreate()

SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0); 
boolean loadNewActivity = prefs.getBoolean("LoadNewActivity", false); 
if(loadNewActivity) 
{ 
    Intent intent = new Intent(this, MyNewActivity.class); 
    startActivity(intent); 
} 
else 
{ 
    // Do normal startup 
} 
+0

Некоторые решения проще, чем вы можете себе представить. Благодарю. – Fattum

+0

Btw, вы пропустили editor.commit() ^^ – Fattum

+0

О да ... спасибо за то, что указали это. – Rohit5k2

Смежные вопросы