Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从GCMBasEventService中的onRegistered()方法获取活动对象的引用_Android_Service_Google Cloud Messaging - Fatal编程技术网

Android 如何从GCMBasEventService中的onRegistered()方法获取活动对象的引用

Android 如何从GCMBasEventService中的onRegistered()方法获取活动对象的引用,android,service,google-cloud-messaging,Android,Service,Google Cloud Messaging,我目前正在android中使用Google GCM推送通知服务。我已经完成了推送,效果很好。现在我必须向我的服务器发送一些关于成功注册到谷歌服务器的设备详细信息。现在我需要一个活动对象引用 protected void onRegistered(Context context, String registrationId) { Log.i(TAG, "Device registered: regId = " + registrationId); displa

我目前正在android中使用Google GCM推送通知服务。我已经完成了推送,效果很好。现在我必须向我的服务器发送一些关于成功注册到谷歌服务器的设备详细信息。现在我需要一个活动对象引用

   protected void onRegistered(Context context, String registrationId) {
        Log.i(TAG, "Device registered: regId = " + registrationId);
        displayMessage(context, getString(R.string.gcm_registered));           
        registerToMyServer(context, registrationId); //initiate a rest call
        // the context above returns application context not the activity context
    }

   public void registerToMyServer(Activity activity, String rid){
         //handing REST
   }

有人能帮我吗。如何从GCMBaseIntentService子类的onRegistered()方法中获取活动引用

为什么需要活动的引用?。如果不需要用户交互,则不需要活动

现在我必须向我的服务器发送一些关于成功的设备的详细信息 注册

这可以在您当前的onRegistered方法中完成(当然,您应该创建一个类来处理这个问题)

您必须了解的另一件事是GCMBaseIntentService是一项服务。。。因此,当您完成注册时,您的活动可能存在,也可能不存在。因此,请重新考虑设计

您不需要活动引用从上下文获取电话详细信息活动扩展,因此您可以根据提供的上下文获取它

 ↳  android.content.Context
       ↳    android.content.ContextWrapper
           ↳    android.view.ContextThemeWrapper
               ↳    android.app.Activity
有关更多信息,请参阅中提供的示例: C:\Users\USERNAME\android-sdk\extras\google\gcm\samples\gcm-demo-client\src\com\google\android\gcm\demo\app\
gcminentservice.java和ServerUtilities.java

您的上述观点“这可以在您当前的onRegistered方法中完成(当然,您应该创建一个处理此问题的类)”。但怎么做呢?您是否正在尝试将数据发布到服务器?是的,我需要将数据发布到服务器。此外,我需要附加的设备细节,如屏幕大小等服务器。要获取设备详细信息,我需要活动参考。如果您觉得这有帮助并解决了您的问题,您可以将其标记为答案。您看过gcm考试吗?