Будет ли вызвана услуга, если приложение не имеет активности? [Дубликат]

В отличие от других языков, имеющих переменную и значение, у Python есть имя и объект.

Этот оператор:

a = [1,2,3]

означает присвоение списку (объекту) имени a, и это:

b = a

просто дает тому же объекту a новое имя b, поэтому всякий раз, когда вы что-то делаете с a, объект изменяется, и поэтому b изменяется .

Единственный способ сделать действительно копию a для создания нового объекта, как и другие ответы, уже сказал.

Вы можете увидеть больше об этом здесь .

21
задан Bhavesh Jethani 19 June 2014 в 14:32
поделиться

2 ответа

Конечно! Нет причин, по которым вы не можете иметь приложение только с услугой. ... и нет необходимости входить в AIDL, если вы этого не хотите.

Проблема в том, как заставить приложение запускаться. Когда вы создаете приложение с активностью, вы добавляете в манифест фильтр Intent, который запускает активность с Launcher. Если нет никакой активности, вам придется найти другой способ ее запуска.

Это легко сделать. Просто запустите намерение от одной из ваших других программ, например:

startService(new Intent("my.service.intent"));

... где служба зарегистрирована ваш манифест, например:

        <service android:name=".SomeService" >
          <intent-filter>
            <action android:name="my.service.intent"/>
          </intent-filter>

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

Конечно, startService и broadcastIntent немного неуклюжи, если вам действительно нужен сложный API между приложениями и вашим сервисом. Если вам нужно что-то более богатое, вы захотите посмотреть в AIDL и связанную службу.

Отредактировано для добавления Intent Filter

21
ответ дан G. Blake Meike 21 August 2018 в 09:30
поделиться
  • 1
    Спасибо за ваш ответ, это было очень полезно. Мне действительно было интересно, как позвонить в службу. Я добавляю BroadcastReceiver к сервису (приложению), и я сделал так, чтобы он начинался с загрузки, это должно решить пожарное событие для запуска службы. – iLyas 20 June 2014 в 08:04
  • 2
    @ilyas Да, это должно сработать. Помните, однако, что только потому, что вы запускаете его при загрузке, это не означает, что он будет выполняться stay . Android, в конце концов, убьет его. Кроме того, вы можете свести к минимуму использование батареи, запустив свое обслуживание только тогда, когда это действительно необходимо ... – G. Blake Meike 20 June 2014 в 15:49
  • 3
    как я могу это сделать в Android Studio? Я не могу создать приложение без активности ... – Libathos 8 December 2016 в 13:34
  • 4
  • 5
    @MattD Что заставляет вас думать, что это должно быть в одном приложении? – G. Blake Meike 25 April 2018 в 14:51

Да, я думаю, вы ищете AIDL. Посмотрите на эту тему?

https://groups.google.com/forum/#!topic/android-developers/LuWPZjPZ0sk

0
ответ дан Mattias Backman 21 August 2018 в 09:30
поделиться
  • 1
    Спасибо за ваш ответ, но пока я не использую межпроцессное общение, но довольно информативный, я не знал, как это использовать, спасибо. – iLyas 20 June 2014 в 07:58
Другие вопросы по тегам:

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