Android ==> отключить многозадачность?

1

1- Как отключить многозадачность? Мое приложение - игра на основе сокетов, каждый раз, когда я запускаю приложение, он ДОЛЖЕН сначала загружать главную страницу, чтобы начать соединение сокета? Я не хочу, чтобы пользователь мог запускать мое приложение в фоновом режиме. Можно ли это сделать?

2- Я не хочу, чтобы пользователь мог использовать кнопку "Назад", чтобы перемещаться между страницами, пользователи должны использовать только кнопки, доступные в моем приложении для навигации? возможно ли это?

  • 5
    Это просто попахивает плохим дизайном. Вам нужно поддерживать аппаратные кнопки, и вам нужно изящно восстанавливаться после того, как вы отошли на задний план. AFAIK, это фундаментальные принципы дизайна Android ...
  • 0
    это не правда. Вы не хотите, чтобы розетка была постоянно подключена, что может привести к потере батареи. И клиентскому / серверному приложению нехорошо поддерживать соединение, когда пользователь неактивен, это просто трата пропускной способности и замедляет работу сервера.
Показать ещё 2 комментария
Теги:
multitasking

1 ответ

3
Лучший ответ

Вы можете поймать кнопку "Назад" (и игнорировать ее), но вы не можете заблокировать кнопку "Домой".

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{       
    if (keyCode == KeyEvent.KEYCODE_BACK)
    {
        return true;
    }
    ...

Помните, что Phone - это просто другое приложение, поэтому эта конструкция ОС предотвращает отключение приложения-изгоя "аспект телефона" устройства.

Если вы хотите, чтобы ваше приложение не работало в фоновом режиме, вы можете закрыть действие из метода onPause():

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

Это заставит ваше приложение начинать с нуля, если по какой-либо причине оно помещается в фоновом режиме. Это, вероятно, будет вызвано, когда телефон будет усыпан, однако, возможно, это не точное поведение, которое вы ищете.

  • 0
    спасибо большое, отличный ответ. 1 Вопрос: где мне написать второй предоставленный код? В каждой деятельности?
  • 1
    Код onPause () должен быть включен в любое действие, которое вы не хотите запускать в фоновом режиме. Тем не менее, как прокомментировал Чинмай Канчи, вы не согласны с философией Android, поэтому вам будет очень сложно разработать свое приложение таким образом. Вот более подробное объяснение того, какие функции жизненного цикла вызываются, когда: developer.android.com/guide/topics/fundamentals.html#actlife
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню