记录不在AsyncTask中工作

时间:2014-07-24 08:14:46

标签: android android-asynctask android-logcat google-cloud-messaging

使用asynctask进行注册的代码:

import java.io.IOException;
import android.content.Context;
import android.content.SharedPreferences;  
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;
import com.google.android.gms.gcm.GoogleCloudMessaging;
public class RegisterApp extends AsyncTask<Void, Void, String> {

    private static final String TAG = "GCMRelated";
    Context ctx;
    GoogleCloudMessaging gcm;
    String SENDER_ID = "10413";
    String regid = null; 
    private int appVersion;


    public RegisterApp(Context ctx, GoogleCloudMessaging gcm, int appVersion){
        this.ctx = ctx;
        this.gcm = gcm;
        this.appVersion = appVersion;
    }

    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(Void... params) {
        String msg = "";
        try{
            if (gcm == null){
                gcm = GoogleCloudMessaging.getInstance(ctx);
            }
            regid = gcm.register(SENDER_ID);
            msg = "Device registered, registration ID=" + regid;
            Log.i(TAG,msg);

        } catch (IOException e){
            msg = "Error: " + e.getMessage();
        }

        return msg;
    }


    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        Toast.makeText(ctx, 
          "Registration Completed. Now you can see the notifications", 
          Toast.LENGTH_SHORT)
          .show();
          Log.v(TAG, result); 
    }
}

此处toast正在onPostExecute()中工作,但Log无法正常工作。我想在Logcat中显示resultmsg

更多要知道的是我在哪里可以定义日志放在Logcat的信息中?我是否必须在主UI线程中执行此操作,或者可以在android系统中的任何位置执行此操作?

这是Logcat: enter image description here

0 个答案:

没有答案