2013-09-23 3 views
16

У меня есть проблемы, чтобы закончить деятельность раньше. Я хочу начать другую деятельность и завершить текущую деятельность. Когда я использовал finish, он не выходил из текущей активности.Как завершить активность при запуске другой активности в Android?

Как я могу завершить работу раньше?

+0

Intent намерения = новый Intent (A.this, B.class); startActivity (намерение); finish(); –

+0

Вы имеете в виду, что нет никаких шансов, что два действия будут выполняться одновременно, кажется, что вам понадобится третья сторона, чтобы начать вторую операцию, если первая из них мертва. Если это так, вам, вероятно, понадобится какой-то сервис с таймером. – MikeIsrael

+0

закончит(), выполнит операцию непосредственно на onDestroy() из onResume()? –

ответ

67

intent Ваш текущий context другой деятельностью сначала с startActivity. После этого вы можете finish вашего текущего activity, откуда вы перенаправляете.

Intent intent = new Intent(this, FirstActivity.class);// New activity 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
finish(); // Call once you redirect to another activity 
+0

Спасибо .. Очень полезно и успех .. – mrhands

+0

почему мы используем FLAG_ACTIVITY_CLEAR_TOP @vikalp patel ?? –

+5

Это гарантирует, что вы не сможете вернуться к предыдущему действию с помощью кнопки BACK. – erdomester

0

Для, например: вы используете два деятельность, если вы хотите перейти от активности А на активность B

Просто дайте, как это.

  Intent intent = new Intent(A.this, B.class); 
     startActivity(intent); 
     finish(); 
3
Intent i = new Intent(this,Here is your first activity.Class); 
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(i); 
    finish(); 
1
  1. сделать вашу активность А в файле манифеста: launchMode = "singleInstance"
  2. Когда пользователь нажимает новые, сделать FirstActivity.fa.finish(); и вызвать новый Intent.
  3. Когда пользователь нажимает изменить, вызовите новое намерение или просто закончить деятельность Б.
0
startActivity(new Intent(context, ListofProducts.class) 
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)); 
+0

Могу ли я попросить вас добавить еще какой-то контекст вокруг вашего ответа. Кодовые ответы трудно понять. Это поможет читателю и будущим читателям, если вы сможете добавить дополнительную информацию в свой пост. – RBT

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