2016-02-05 6 views
4

Начинаю второе действие, когда мое первое действие приостановлено.startActivity in onPause() не работает после открытия нового приложения

FirstActivity.java

@Override 
public void onPause(){ 
    super.onPause(); 
    startActivity(new Intent(this, SecondActivity.class)); 
} 

При нажатии на кнопку для главного экрана, SecondActivity начнется, но с задержкой. В этой задержке есть достаточно времени, чтобы открыть новое приложение (например, посланник). Однако, когда я открываю новое приложение, SecondActivity больше не будет запускаться (он даже не вызовет метод onCreate SecondActivity).

Как я могу запустить SecondActivity, даже когда открываю новое приложение?

+0

Когда вы нажмете обратно с вашего нового приложения, вы перейдете на ваш SecondActivity или домашний экран? И почему вы хотите открыть SecondActivity из onPause? – itechevo

+0

Когда я отжимаю назад, я перехожу к своей SecondActivity. Я хочу открыть SecondActivity из onPause как «lockscreen». –

+0

, пожалуйста, укажите, что вы хотите выполнить точно –

ответ

0

Переопределите метод onBackPressed() и начните с него новую активность, вместо того чтобы добавить код в onPause().

@Override 
public void onBackPressed() 
{ 
    startActivity(new Intent(this, SecondActivity.class)); 
    super.onBackPressed(); 
} 
+0

Я хочу начать свою SecondActivity, когда я покину свой FirstActivity. Выход из FirstActivity не может выполняться только нажатием на кнопку «назад», но также можно сделать, нажав на кнопку главного экрана. Поэтому эта проблема не будет решена путем переопределения метода onBackPressed() и начала нового действия. –

0

Я думаю, что у меня есть решение, если вы хотите, чтобы начать новую деятельность, я бы пойти с OnStop, вместо OnPause. Начать новую деятельность с флагом: SingleInstance

<activity .. 
    android:launchMode= "singleInstance" /> 

Пожалуйста, используйте OnStop() во второй активности и называют отделку() там. так что вы убиваете второй экземпляр активности при выходе из приложения. Вы можете легко перезапустить его.

+0

Вы имеете в виду, что нужно называть finish() в onStop() SecondActivity? Потому что это не работает. –