Начальная служба Xamarin Android после установки или обновления [дубликат]

solution

https://www.npmjs.com/package/babel-register

// this is to allow ES6 export syntax
// to be properly read and processed by node.js application
require('babel-register')({
  presets: [
    'env',
  ],
});

// after that any line you add below that has typical es6 export syntax 
// will work just fine

const utils = require('../../utils.js');
const availableMixins = require('../../../src/lib/mixins/index.js');

ниже - определение mixins / index .js

export { default as FormValidationMixin } from './form-validation'; // eslint-disable-line import/prefer-default-export

, который отлично работал в моем приложении node.js CLI.

37
задан Rob Charlton 24 January 2010 в 13:40
поделиться

2 ответа

Вы не можете этого сделать - нет возможности автоматически запускать сервис только потому, что он был установлен.

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

47
ответ дан CommonsWare 25 August 2018 в 11:16
поделиться
  • 1
    Спасибо, я подозревал, что это может быть так. Похоже, это немного надзор, учитывая, насколько хорошо продумана ОС в целом. – Rob Charlton 24 January 2010 в 15:39
  • 2
    Да, это преднамеренно. Установка приложения происходит автоматически в фоновом режиме при загрузке приложения. Мы предпочитаем, чтобы код приложения не запускался до тех пор, пока пользователь явно не отправится в приложение в первый раз. (И, пожалуйста, не говорите пользователю, чтобы перезагружать их устройство. Это не нужно. Просто позвольте им запустить ваше приложение и выполнить вашу инициализацию при первом запуске.) – hackbod 25 January 2010 в 08:03
  • 3
    Итак, это действительно не для безопасности, так как я могу запускать код при загрузке или при входящем SMS или в установке пакета next . Я бы классифицировал это больше в категории «подталкивания». к ожидаемому поведению платформы. Тем не менее, для моих клиентов это похоже на ошибку - на Android есть дополнительный обруч, чтобы перепрыгнуть, чтобы запустить службу. Это не приложение, которое пользователь будет выбирать из Market, это скорее приложение, которое оператор или предприятие захочет установить на телефоне, предпочтительно без какого-либо взаимодействия с конечным пользователем. – Rob Charlton 25 January 2010 в 14:28
  • 4
    Если оператор устанавливает его на трубку, телефон будет перезагружен до того, как он доберется до пользователя, просто потому, что операторы не сохраняют свой список телефонов - они будут отключены после настройки и до доставки клиенту , Что касается предприятия, то нынешняя форма Android предназначена для потребителей, поэтому на платформе будут разные вещи, которые будут противоречить потребностям предприятия в интересах защиты потребителей от вредоносного ПО. – CommonsWare 25 January 2010 в 15:03
  • 5
    @CommonsWare: Какую технику использует Plan B? – Phillip 14 May 2012 в 23:39

Была дыра - SDK Android Analytics использовался для отправки намерения сразу после установки - но это было закрыто (разумеется, много путаницы).

Но окончательный ответ, я считаю, здесь:

http://developer.android.com/about/versions/android-3.1.html#launchcontrols

Это, по-видимому, предполагает, что , с 3.1 Google принял решение о том, что приложения находятся в остановленном состоянии, пока пользователь явно не активирует их, например запуском приложения или размещением виджета.

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

9
ответ дан Tom 25 August 2018 в 11:16
поделиться
Другие вопросы по тегам:

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