Предлагаю использовать приемники Broadcast здесь. Таким образом, IntentService
будет транслировать событие, и все действия или что-то еще могут зарегистрироваться для него.
Чтобы избежать излишнего самого BroadcastReceivers
(так как они intented, которые будут использоваться в связи между процессами и могут быть излишними и утечки безопасности) - я reccoment использования LocalBroadcastManager
- http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html. Это помощник для строго местных передач, упрощает их обработку и обеспечивает большую производительность и безопасность.
Update:
Чтобы использовать LocalBroadcastReceiver внутри GCM IntentService вы должны сделать что-то вроде этого:
@Override
protected void onMessage(Context context, Intent intent) {
Intent bIntent = new Intent("custom-event-name");
// You can also include some extra data.
bIntent .putExtra("message", intent); //or get some info from Gcm intent and put it into this one.
LocalBroadcastManager.getInstance(context).sendBroadcast(bIntent);
}
И здесь вы можете проверить, как зарегистрировать приемник внутри вашей активности, это довольно легко: how to use LocalBroadcastManager?
Успехов
благодаря AlexN, я новичок в Android, пожалуйста, примените модификацию кода и покажите мне ... извините за мой английский. – Antonio
На самом деле, вам даже не нужно вставлять код - здесь описываются темы: http://stackoverflow.com/questions/8802157/how-to-use-localbroadcastmanager Надеюсь, что это поможет – AlexN
, но я не знаю ho применить код, почему полученный расширяет GCMBaseIntentService .... помогите мне пожалуйста ... – Antonio