Я работал над тренировочным приложением для Android, чтобы познакомиться с платформой. В частности, приложение, которое я пытаюсь реализовать, позволяет пользователю выбрать звуковой файл (MP3 или WAV) для воспроизведения в определенную дату и время, показывая диалог с индикатором выполнения и кнопкой OK / Cancel, позволяющей пользователю остановить воспроизведение звукового файла. Я хочу, чтобы он вел себя как приложения для обратного отсчета, которые я видел, или даже встроенное приложение будильника. Поскольку я реализую это простое (я думал!) Приложение, я пытаюсь лучше понять платформу и привести приложение в соответствие с Android.
Поскольку я писал приложение, я узнал больше о том, как все должно работать на платформе Android. И вот тут я немного запутался. Во время моих попыток заставить сигнализацию сработать и отобразить, я узнаю, что правильно сформированные приложения Android не должны показывать диалоги в результате фоновой службы или широковещательного приемника, вызываемого через службу тревоги Android. Вместо этого, я думаю, приложение должно использовать уведомление в строке состояния, чтобы предупредить пользователя. Затем у пользователя есть возможность просмотреть уведомление, чтобы увидеть, что приложение пытается сказать ему.
Мне удалось открыть диалоговое окно, которое я хотел вызвать, запустив новое действие из службы, которая была запущена службой сигнализации Android. Однако, похоже, что я нарушил правило Android, сделав это. Сначала я узнал об этом, потому что увидел в окне DDMS LogCat сообщение, в котором спрашивалось, уверен ли я, что хочу начать новый вид деятельности со Службы. Во-вторых, я читал в нескольких местах, что это было нехорошо. Одно из высказываний, которое пришло на ум, было от разработчика Google, который сказал, что он наверняка удалит приложение, которое сделало что-то подобное.
Вместо этого приложение, если я правильно понимаю, должно использовать строку состояния и уведомления, чтобы привлечь внимание пользователя и позволить им увидеть, что приложение хочет в свободное время. Это кажется противоречащим тому, что пытается сделать мое приложение. Опять же, я пытаюсь заставить его вести себя, по сути, как приложения обратного отсчета, которые я видел, или встроенное приложение будильника, которое поставляется на телефонах Android. Если мое приложение работает неправильно, работает ли приложение будильника? Очевидно, я бы сказал, что приложение будильника делает именно то, что я ожидал. И пользователь моего приложения, я думаю, ожидал, что звуковой файл будет воспроизводиться с диалоговым окном, показывающим, что воспроизведение звукового файла можно остановить без необходимости проходить через строку состояния.
Правильно ли я понимаю платформу Android? Любые мнения о том, как такое приложение может быть реализовано, не шалить, вызывая диалог, который я упомянул? Мне бы хотелось, чтобы приложение считалось хорошо сформированным приложением для Android, но мне трудно понять, насколько мое приложение так сильно отличается от других, которые я видел, или даже от встроенного будильника.
Спасибо!
Джефф