2013-02-12 6 views
2

Код приложения для Android, который будет связываться с GCM. Я могу получить сообщение, но я бы хотел отобразить его на экране и получить ошибку.
Есть мой код, у меня проблема в строке Activity act = (Activity) context;
я получаю ошибку «Архиватор этого файла класса принадлежит к контейнеру„Android зависимостям“, который не допускает модификацию вложений источника на его запись»Показать сообщение GCM в Android

@Override 
protected void onMessage(Context context, Intent indent) { 

    String message = indent.getExtras().getString("message").toString(); 

    Log.i(TAG, "new message= " + message); 

    Activity act = (Activity) context; 
    if(act != null) 
    { 
     TextView pushNotification = (TextView) act.findViewById(R.id.txtPushNotify);  
     pushNotification.setText(message); 
    } 
} 

Что я делаю неправильно ?? Этот метод в классе

public class GCMIntentService extends GCMBaseIntentService {...} 

Существует мой LogCat

к неустранимым: IntentService [GCMIntentService-19193409722-1] java.lang.ClassCastException: android.app.Application
в com.sagar.gcma .GCMIntentService.onMessage (GCMIntentService.java:41)
в com.google.android.gcm.GCMBaseIntentService.onHandleIntent (GCMBaseIntentService.java:223)
в android.app.IntentService $ ServiceHandler.handleMessage (IntentService.java:59)
на android.os.Handler.dispatchMes шалфей (Handler.java:99)
на android.os.Looper.loop (Looper.java:123)
на android.os.HandlerThread.run (HandlerThread.java:60)

+0

Вы, вероятно, захотите опубликовать всю свою ошибку logcat, дает людям лучшую информацию –

+0

см. Эту проблему .. http://code.google.com/p/android/issues/detail?id=27490#c6 –

+0

Вы пытаетесь Чтобы превратить контекст службы в Activity, я не думаю, что это возможно. –

ответ

4

Попробуйте ввести код.

Тогда напишите сообщение, отображающее код внутри этого activity.

1

Сообщение об ошибке «JAT этого файла класса относится к контейнерам« зависимостей от Android », которые не позволяют изменять исходные вложения в своих записях», кажется мне (каким-то образом) не связанным со мной, поскольку это сообщение об ошибке, сгенерированное IDE, не связанное с вашим фактический код.

я был бы осторожен с броском в коде:

Activity act = (Activity) context; 

Вы уверены, что переданная контекст на самом деле (в любом случае) ваша деятельность?

Edit:

Чтение правки, я могу подтвердить, что контекст вы получаете ваше приложение, а не деятельность.

И вам как-то нужно передать это сообщение (которое ваша служба получает) для деятельности переднего плана (если активна). Если нет активности переднего плана, используйте уведомление или что-то подобное.

Смежные вопросы