在 AsyncTask 中向 onPostExecute 发送参数

Ken*_*Ken 1 java android parameter-passing android-asynctask

onPostExecute 将使用 2 个参数,来自 doInBackground 的 GCMID 和来自调用 AsyncTask 的主函数的 UserID

我试图更改 AsyncTask 声明中的参数,但出现错误“尝试使用不兼容的返回类型”

String UserID = "Admin";
new GCM().execute(null,null,null);
Run Code Online (Sandbox Code Playgroud)
    private class GCM extends AsyncTask<String, String, String> {

        @Override
        protected String[]  doInBackground(String... params) {
            String gcmRegID = GHelper.GCMRegister("123456");
            return gcmRegID;
        }


        @Override
        protected void onPostExecute(String RegID) {
            UTask ut = new UTask();

            // ****** I managed to send RegID
            // ****** I can not send UserID !! How to send it?

            ut.execute(UserID, RegID);
        }
    }
Run Code Online (Sandbox Code Playgroud)

小智 5

尝试这个:

String UserID = "Admin";
new GCM().execute(null,null,null);
Run Code Online (Sandbox Code Playgroud)

和

private class GCM extends AsyncTask<String, String, String[]> {

    @Override
    protected String[]  doInBackground(String... params) {
        String regId = somethingToGetRegId();
        String userId = somethingToGetUserId();
        return new String[]{regId, userId};
    }


    @Override
    protected void onPostExecute(String[] values) {
        UTask ut = new UTask();

        String regId = values[0];
        String userId = values[1];
        ut.execute(UserID, RegID);
    }
}
Run Code Online (Sandbox Code Playgroud)