0

我想做(例如这个): 1.- GCM 到达 2.- 从后台运行的服务上传一些数据到我的服务器(当 GCM 到达时我不想显示任何警报或播放任何声音),也许将设备当前位置上传到服务器。

我想从 Phonegap 做到这一点,所以我想我要编写一个插件或找到一个插件来与 javascript 源通信服务。我不需要 Phonegap 来接收来自该服务的任何类型的消息,但将上传我需要的数据的是服务本身。换句话说,我将使用 Phonegap 作为 UI 并启动将完成所有工作的服务。我还需要在用户打开他/她的手机时启动服务(我猜这来自服务配置),但我认为用户必须至少启动一次应用程序(我认为这是正常的,对吗?) .

我现在的问题是,当 GCM 到达时,我不知道如何告诉我的服务做“某事”。任何意见,将不胜感激。

4

1 回答 1

0

这很简单,每当您在服务中收到 GCM 消息时

@Override
protected void onMessage(final Context arg0, final Intent arg1) {
    String arr=arg1.getStringExtra("message");
    arr2=arr.split("-");

    Handler h = new Handler(Looper.getMainLooper());
       h.post(new Runnable(){

            public void run() {
                // TODO Auto-generated method stub
            Toast.makeText(arg0, arr2[0], Toast.LENGTH_LONG).show();
               if(arr2[0]=="desired value"){
               //launch a method in your service that post data to your server using requests
                  }
    }         
        });
}

现在在您的服务中声明一个方法,该方法收集所有位置数据并将其发布到您的服务器,在 void run() 中调用该方法。

我希望这个解决方案可以帮助你。

于 2013-08-21T17:47:16.983 回答