Я разрабатываю оповещение о местоположении, которое является приложением для Android.
Вся часть кодирования выполнена.
Но диалоговое окно предупреждения не отображается, когда приложение закрыто.
Пожалуйста, помогите мне, я пытаюсь выставить будильник, даже когда пользователь использует другое приложение или находится на главном экране.
Код моей тревоги на данный момент показан ниже:
final MediaPlayer mp = MediaPlayer.create(LocAlarmProject.this, R.raw.airtel);
mp.start();
// LocAlarmProject.this below is what causing the problem:
final AlertDialog.Builder builder=new AlertDialog.Builder(LocAlarmProject.this);
builder.setTitle(disp_title);
builder.setMessage(disp_desc);
builder.setIcon(R.drawable.alarm);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mp.stop();
}
});
builder.show();
Я уверен, что вы ищете Сервис.
Скопировано и вставить:
Служба - это компонент приложения, представляющий либо приложение, желающее выполнить более длительную работу, не взаимодействуя с пользователем, либо предоставляя функциональные возможности для использования другими приложениями. Каждый класс сервиса должен иметь соответствующее объявление в своем пакете AndroidManifest.xml. Сервисы можно запустить с помощью Context.startService() и Context.bindService().
Используйте службу уведомлений, чтобы отслеживать статус..... посетите... http://developer.android.com/guide/topics/ui/notifiers/notifications.html
Правильный способ сделать это требует нескольких шагов. Извините, это не тривиально, если вы этого не сделали раньше:
Во-первых, вы собираетесь использовать Android- AlarmManager
для планирования времени, в которое вы хотите активировать свое приложение. Вы планируете новый будильник со временем для пробуждения и PendingIntent
.
Во-вторых, создайте свой PendingIntent
который использовался для активации вашего приложения в течение времени, чтобы показать будильник.
В-третьих, вы можете справиться с этим намерением несколькими способами, наиболее распространенным является создание класса, который расширяет BroadcastReceiver
для получения Intent. Этот класс уведомляется, когда ему нужно показать будильник. Предназначение, которое вы создали и разместили внутри вашего PendingIntent, передается его onReceive()
. Вы передаете эту информацию в свое приложение, чтобы отобразить диалоговое окно предупреждения. --- Вы также можете просто зарегистрировать основное приложение, чтобы вместо этого принять намерение, а затем переопределить метод onNewIntent(Intent)
в своей деятельности.
Четыре, зарегистрируйте свой BroadcastReceiver
в вашем файле AndroidManifest.xml
. Это также место, где можно зарегистрировать этот приемник для прослушивания созданного вами намерения. Вы делаете это с помощью <intent-filter>
.
Пять (необязательно), если вы хотите, чтобы ваш сигнал тревоги отображался, даже если телефон спит, и вы хотите убедиться, что он не возвращается в режим сна до того, как пользователь подтвердит сигнал тревоги, вам нужно получить WAKE_LOCK, чтобы сделать так.
Причина, по которой это предпочтительнее использовать Сервис, - это не потреблять ресурсы только для того, чтобы дождаться тревоги, а также она по-прежнему работает, если Android решит убить ваше приложение, освобождая память. Удачи и счастливого кодирования!