2013-03-01 3 views
0

Я кодирую приложение, где я просто хочу добавить функцию, т.е. когда уровень заряда батареи становится низким (скажем, менее 20%), приложение автоматически прекратится, а соответствующие службы также получат закрыты, это возможно, если так, пожалуйста, дать некоторые методы, чтобы сделать so..Thanks заранееforce close app, когда батарея разряжена

+0

Это было бы возможно, но вы можете переосмыслить это. Если он просто закрывается, ваши пользователи могут подумать об ошибке. До того, как он доберется до критической точки, вы можете захотеть предупредить пользователей, а не – codeMagic

+0

@codeMagic. Я уверен, что вы увидите предупреждение о статусе батареи, но возможно ли, чтобы приложение прекратилось? – immutable

+0

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

ответ

3

Вы должны слушать Intent"android.intent.action.ACTION_BATTERY_LOW" с BroadcastReciever

Вы можете остановить ваши компоненты с помощью: Добавить BroadcastReceiver через код в ваших Services и Activities. Он получит Intent, где вы можете остановить компоненты: Activity имеет finish(), Service имеет stopSelf(). Это остановит только те компоненты, которые были запущены раньше! (Хорошая вещь)

Или вы можете сделать это с помощью BroadcastReceiver через manifest: Когда вы получите его в BroadcastReceiver.onReceive вы можете позвонить stopService, чтобы остановить службу. Остановить Activity намного сложнее, проверьте, находится ли ваш Activity на переднем плане, отправьте ему индивидуальное намерение. Он получит его и сможет остановить себя. Предпосылкой является то, что это singleInstance.

+0

k ... но как сделать приложение безопасно завершать .....? – immutable