2013-04-23 2 views
3

Я разрабатываю приложение, которое загружает материалы из Интернета и отображает, больше похоже на веб-браузер. Чем глубже вы заходите, тем быстрее заполняется задний стек ключа. Итак, теперь, когда вы нажимаете клавишу «назад», он загружает последний URL из списка, а затем продолжает идти до первого посещенного URL-адреса, и в последний раз нажата клавиша «Назад», приложение закрывается.Android назад ключ/кнопка, как использовать отлично?

Но есть проблема, предположим, что вы просматриваете в течение длительного времени с таким количеством URL-адресов в списке back-key. Теперь вы хотите закрыть приложение, но вам нужно будет удерживать клавишу «Назад» до последнего URL-адреса, а затем она приблизится. Это не очень хорошая идея, я имею в виду ее очень раздражает. Если я хочу закрыть приложение, это должно быть сделано одним нажатием. Таким образом, я придумал идею поместить кнопку выхода, но это все еще плохой дизайн для Android.

Мне интересно, есть ли лучший способ, который вы, ребята, можете предложить, это было бы очень приятно.

+0

http://developer.android.com/guide/topics/ui/actionbar.html#Home –

+0

да это же, как и кнопка выхода – xmen

+0

дать кнопку выхода в меню. –

ответ

4

Одно из предложений: вы можете создать событие onLongPress на своей задней кнопке. Обычно это делается во многих аппаратно-программных приложениях, поэтому многие люди должны попробовать это по интуиции. Если пользователь нажмет кнопку «Назад», это вернется, если он останется на задней панели, это закроет приложение или попросит его подтвердить приложение в диалоговом окне подтверждения.

Таким образом, в вашем случае, вы будете иметь:

@override 
public boolean onKeyLongPress(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) 
    { 
     // close the app 
     return true; 
    } 
    return super.onKeyLongPress(keyCode, event); 
} 

Даже лучше, вы можете осуществить это, и добавить меню, когда пользователь нажимает на кнопку меню, он увидит значок выхода, и выход такой.

1

Я думаю, что выход Button не всегда является плохим вариантом, особенно когда вам нужно что-то в этом роде. Но вы можете думать о другом

раствора-

onbackpress нормально выйти из webview и добавить backbutton как webbrowsers.

+0

Я всегда предпочитал, чтобы длинный нажав на кнопку, чтобы закрыть приложение. Но нет способа узнать это. – xmen

+1

ok еще одна идея, как о двойном касании на задней клавише – stinepike

+1

, и вы можете обрабатывать длинные нажатия клавиш тоже. Public boolean onKeyLongPress (int keyCode, событие KeyEvent) – stinepike

0

IMHO любая работа, чтобы закрыть приложение, - это плохие идеи и плохие методы проектирования для Android. Если пользователь хочет немедленно выйти из приложения, он будет использовать кнопку «Домой», а не кнопку «Назад», вот что означает кнопка «Дом», поэтому она есть.

еще раз это мое мнение, но я считаю, что хороший дизайн в этом типе приложений (вы упомянули веб-браузер, тип вещи) заключается в том, что, например, пользователь хочет запустить браузер с начала дерева навигации , вы используете кнопку «Вверх» (как предложено в одном из комментариев http://developer.android.com/guide/topics/ui/actionbar.html#Home), чтобы привести ваше приложение в исходное состояние. Вы можете использовать намерение с флагом CLEAR_TOP, чтобы удалить любой существующий Backstack.

+0

Но не каждый пользователь знает, как использовать кнопку Android. А затем приходит отрицательный рейтинг. – xmen

+0

Я заметил, что вы ответили на ответ BackLongPress как принятый ответ. Как вы думаете, пользователь, который не знает о кнопке «домой» (самая центральная кнопка на всей системе), будет понимать длинную печать? – Budius

+0

Некоторые пользователи не хотят минимизировать приложение (кнопка «домой»), они хотят полностью закрыть его. Да, они не будут знать о длительной печати, но обратный ключ - это только тот, кто предположил бы это сделать. Я также думаю о том, что быстрое нажатие клавиши в качестве опции тоже. :) – xmen

0

Я думаю, что Милос ответ является лучшим способом сделать это ... тоже можно добавить опцию „Выход“ в качестве пункта меню, проверить это:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.your_option_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.exit: 
     // CLose your app 
     finish(); 
     return true; 
    } 
    return false; 
} 

И это макет для меню: your_option_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/exit" 
      android:icon="@android:drawable/ic_menu_exit" 
      android:title="@string/Exit" /> 
</menu> 
Смежные вопросы