2013-09-29 3 views
0

Я хочу, чтобы приложения для Android, которые приложения будут уничтожать, когда дома нажимают. поэтому, когда приложение снова запустится, приложения снова начнут перезапускаться с самого начала. Не возобновлять приложения`Завершение приложений при нажатии кнопки «Домой»?

ответ

1
@Override 
public void onAttachedToWindow() 
{ 
    Log.i("TESTE", "onAttachedToWindow"); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

С помощью этого метода кнопка HOME перестает работать в этом действии (только это действие). Затем вы просто переопределяете, поскольку это было обычное событие кнопки (например, кнопка возврата).

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_HOME) { 
     Log.i("TESTE", "BOTAO HOME"); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event);  
} 

взят из Can I override the 'Home' button in my application?

0

ли это в вашем OnStop метода

@Override 
    protected void onStop() { 
     finish(); 
     super.onStop(); 
    } 

Надеется, что это работает

Reference

0

Вы можете переопределить OnPause и завершить приложение каждый раза активность приостановлена. Это уничтожит приложение, если оно не находится на переднем плане.

@Override 
public void onPanelClosed(int featureId, Menu menu) { 
    finish(); 
    super.onPanelClosed(featureId, menu); 
} 

Или вы можете сказать в манифесте, что эта деятельность не сможет вернуться. Это не будет уничтожать приложение, если оно не находится на переднем плане.

<activity 
     android:name="com.testapp.MainActivity" 
     android:label="@string/app_name" 
     android:noHistory="true" > 
    </activity> 
0

В манифесте для основной деятельности положил

android:clearTaskOnLaunch="true" 
android:finishOnTaskLaunch="true" 

Из официального документа для clearTaskOnLaunchhttp://developer.android.com/guide/topics/manifest/activity-element.html

Если значение «истина», каждый раз, когда пользователи начинают задачу снова, они приводятся в его корневую активность независимо от того, что они были последними , выполняющих задачу, и независимо от того, использовали ли они Back или Hom e кнопка, чтобы оставить его. Когда значение «ложно», в некоторых ситуациях задача может быть удалена (см. Атрибут alwaysRetainTaskState ), но не всегда.

Предположим, например, что кто-то запускает активность P из дома экрана, а оттуда идет к деятельности Q. После этого пользователь нажимает Home, , а затем возвращается к деятельности П. Как правило, пользователь будет видеть активность Q, так как это то, что они в последний раз делали в задаче P. Однако если P установил этот флаг в значение «true», все действия над ним (Q в этом случае ) были удалены, когда пользователь нажал «Домой», и задача перешла на фон . Таким образом, пользователь видит только P, когда возвращается к задаче.

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