Я относительный новичок в программировании на Android (в основном я делаю C # на Windows). Я унаследовал некоторый код, который состоит из службы и приложения. Я хотел бы повторно использовать службу и некоторые приложения в другом приложении. Я кладу это в библиотеку. Все прошло хорошо, за исключением одной проблемы. Сервис имеет некоторый код, который отображает основные действия на экране. Он вызывает эту деятельность по имени. Ясно, что я не могу иметь это в общем коде. Сервисный код выглядит примерно так:
final int NOTIFY_1 = 0x1001;
NotificationManager notifier = (NotificationManager) context.getSystemService(
Context.NOTIFICATION_SERVICE);
final Notification notify = new Notification(
R.drawable.icon_my_color, ticker, System.currentTimeMillis());
notify.number = 1;
notify.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
notify.ledARGB = android.graphics.Color.CYAN;
notify.ledOnMS = 500;
notify.ledOffMS = 500;
Intent toLaunch = new Intent(context, MyBankingActivity.class);
toLaunch.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intentBack = PendingIntent.getActivity(context, 0, toLaunch, PendingIntent.FLAG_CANCEL_CURRENT);
notify.setLatestEventInfo(context, title, message, intentBack);
notifier.notify(NOTIFY_1, notify);
Этот код запускается службой, когда происходит что-то интересное (банковский счет становится отрицательным или что-то в этом роде). Проблема заключается в «MyBankingActivity.class», который жестко прописан выше. Я удалил MyBankingActivity из библиотеки, потому что она зависит от приложения. Однако мне нужно, чтобы старое приложение работало. Я просто хочу, чтобы он был разделен на библиотеку и приложение, чтобы я мог повторно использовать значительную логику в библиотеке в другом приложении. В этом другом приложении я не хочу получать уведомления об этом
«банковское мероприятие». Даже если бы я это сделал, код в настоящее время жестко запрограммирован с именем одного вида деятельности.
Как правильно разделить логику здесь? Казалось бы, сервис должен «публиковать» событие, а заинтересованные приложения должны «подписаться». По крайней мере, с этой терминологией я знаком. Кстати, сейчас я только что закомментировал весь блок кода, и в старом приложении все отлично работает, кроме, конечно, получения этого уведомления.
Я понимаю (и извиняюсь), что мой вопрос широк. Поскольку было бы лучше «научить человека ловить рыбу, чем давать ему рыбу», пожалуйста, не стесняйтесь рекомендовать ссылки / статьи / книги, которые охватывают эту тему более широко. Я пытался посмотреть на свою ограниченную библиотеку самостоятельно, но либо мои книги слишком вводные (Android in Action - одна), либо я смотрю не в том месте. Кажется, трудно найти даже темы настройки библиотек и служб письма. На мой взгляд, есть несколько ключевых понятий, в которых я слаб:
1. Как служба передает события интересующим приложениям без знания приложения
2. Как вывести приложение на передний план на основе какого-либо сообщения, полученного от службы
3. Как взять существующее приложение и разбить его на библиотеку (для вещей, не относящихся к графическому интерфейсу или не для приложений) и приложение.
4. Как работают уведомления ....
Большое спасибо заранее,
Dave