0

GCM メッセージングをアプリに実装するために GCMIntentService があります。他の私の Apps プロジェクトの同じコードは正常に動作しますが、この新しいプロジェクトでは、デバイスが正しく登録されており、regId などを取得しています...このクラスでは、現在ログインしているユーザーにデバイス トークンを登録したいと考えています。これは、AsyncTask を使用して Ksoap2 で webService を呼び出します。

webServices に呼び出されたメソッドは正常に動作しますが、onPostExecute は呼び出されませんが、doInBackground は、メソッドが正しく動作するか、サーバー エラーが発生するかを知るために使用する文字列値を返します...

数時間後、問題はメソッドではないと思います。この動作は、実行する AsyncTask で次のように発生します。

    private void registroServidor()
{
    url = getUrl();     
    class preprueba extends AsyncTask<String, Void, String> {
        @Override
         protected String doInBackground(String... urls) {
             return "hola";
         }

         protected void onPostExecute(String result) {
             // set image for ImageView
            String hola = "hola";
            Log.i(hola,hola);
         }
     }
    preprueba pp = new preprueba();
    pp.execute();
}

onRegistered void return "hola" から registroServidor を呼び出すと、デバッグ ビューで実行されますが、onPostExecute は実行されません...

誰かが何が問題なのか知っていますか?

前もって感謝します

4

1 に答える 1

0

前回のコメントで述べたように、Android 2.3 (API 10 以下) では、GCMBaseIntentService のような IntentService 内で使用すると AsyncTask が正しく機能しないという問題があります。

この問題は、このリンクで説明されています。そのために、ソリューションは IntentService から AsyncTask を使用しています。

于 2013-08-29T16:09:59.083 に答える