Как изменить статус приложения с активного на фоновый? [Дубликат]

У меня такая же проблема при разработке приложения, которое использует много доступных png-файлов в макете. Я также попытался максимально оптимизировать свой код .. но это не сработало для меня. Тогда я попытался уменьшить размер этих png .. и угадать, что он работает абсолютно нормально. Поэтому мое предложение - уменьшить размер доступных ресурсов, если они есть ..

24
задан Josh David Miller 15 January 2016 в 00:29
поделиться

5 ответов

Для этого сегодня не существует специального способа реагирования. Вы должны выполнить это с родной стороны.

Кроме того, вы разрабатываете для iOS? Apple заявила, что приложения не должны закрываться.

6
ответ дан Adam Terlson 19 August 2018 в 10:51
поделиться
  • 1
    Это приложение для Android, но спасибо, может быть, я просто изменил кнопку «ОК» на кнопку «Повторить» и попросит пользователя либо попытаться снова подключиться, либо выйти самостоятельно. Спасибо, что сэкономили мне эксперименты с AppRegistry. :) – Nolan 15 January 2016 в 15:44
  • 2
    Несмотря на то, что для достижения этого существует нестандартный способ реагирования, это решение, которое подходит для адаптивных сеток: см. Мой ответ ниже для реализации собственного модуля / функции для закрытия приложений для Android и iOS. , – WiRa 6 June 2017 в 10:45

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

componentWillMount() {
   BackHandler.addEventListener('hardwareBackPress', this.backPressed);
}

componentWillUnmount() {
   BackHandler.removeEventListener('hardwareBackPress', this.backPressed);}

backPressed = () => {

    Alert.alert(
      'Exit App',
      'Do you want to exit?',
      [
        {text: 'No', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
        {text: 'Yes', onPress: () => BackHandler.exitApp()},
      ],
      { cancelable: false })

return true;

}

11
ответ дан fazeel zama 19 August 2018 в 10:51
поделиться
  • 1
    Спасибо, что он более понятен в использовании. – 徐博俊 26 June 2018 в 03:38

Для Android используйте BackAndroid для выхода из приложения:

import React, {
    BackAndroid,
} from 'react-native';

BackAndroid.exitApp();
41
ответ дан herbertD 19 August 2018 в 10:51
поделиться

Вот как я достиг:

  componentWillMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackButtonClick);
  }
  componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackButtonClick);
  }
  handleBackButtonClick() {
    BackHandler.exitApp();
    return true;
  }
0
ответ дан Led 19 August 2018 в 10:51
поделиться

Напишите собственный модуль, который выполняет следующие действия при вызове:

IOS:

exit(9);

ANDROID:

((YourApplication) self.getApplicationContext()).kill();

... EDIT ...

Или просто используйте тот, который я создал: https://www.npmjs.com/package/react-native-exit-app

6
ответ дан WiRa 19 August 2018 в 10:51
поделиться
  • 1
    Внимание: библиотека, на которую ссылается, использует лицензию GPLv3 (исходный код должен быть доступен при распространении программного обеспечения) – Jessy 15 April 2018 в 18:25
  • 2
    Я знаю, что это может быть проблемой для некоторых проектов ... Я фактически рассматриваю возможность повторной лицензии моих проектов на MIT в следующих выпусках. Во всяком случае, в проекте нет более внутреннего кода, чем в моем ответе выше, чтобы люди могли легко реализовать свой собственный модуль. (Просто хочу как можно больше поощрять открытый исходный код) – WiRa 16 April 2018 в 14:43
Другие вопросы по тегам:

Похожие вопросы: