2016-07-15 2 views
0

Я уже просматривал сайт stackoverflow, но, к сожалению, все ответы не работают на меня. По некоторым причинам я хочу, чтобы активность не уничтожалась, когда пользователи нажимают кнопку «Назад», чтобы вернуться на главный экран, если фоновый сервис все еще запущен.Используйте moveTaskToBack в OnBackPressed, все еще уничтожайте Activity

App нормальный рабочий процесс, как: запуска экран-> Основная деятельность

  1. при нажатии кнопки назад, а затем снова открыть приложение, рабочий процесс, как: запуска экран-> Основной вид деятельности, государственной деятельности не как перед назад домашний экран (то есть не то, что я хочу)

  2. при нажатии кнопки домой, а затем снова открыть приложение, рабочий процесс, как: основным видом деятельности, государственной деятельности как до возвращения домой экран (то есть то, что я хочу)

Любая идея, как получить 2? Я знаю в 2, активность не уничтожается, просто приостанавливается или останавливается, но как переопределить кнопку «Назад» и позволить ей действовать, как нажатие кнопки «домой»?

Следуйте чьи-то идеи, используя moveTaskToBack в onBackPressed, рабочий процесс по-прежнему, как 1.

Ниже коды, которые я попробовал,

public class SimpleActivity extends AppCompatActivity{ 
..... 
..... 
@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    moveTaskToBack(true); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    Toast.makeText(this, "onDestroy", Toast.LENGTH_LONG).show(); 
    if (musicPlayService!=null||serviceBinder) 
      unbindService(serviceConnection); 
     PlaylistFragment.checkBoxFlag=false; 
     unregisterReceiver(detectHeadset); 

} 

ответ

0

попробовать это:

@Override 
public void onBackPressed() { 
    Intent i= new Intent(Intent.ACTION_MAIN); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    i.addCategory(Intent.CATEGORY_HOME); 
    startActivity(i); 
} 
+0

Спасибо, что ответили на мой вопрос, и решение, которое вы предоставили, также не работает для меня, я попытался, прежде чем я спросил. – Leon

0


Try для удаления super.onBackPressed()

@Override 
public void onBackPressed() { 
    moveTaskToBack(true); 
} 
Смежные вопросы