Java Android - AsyncTask onPostExecute 没有被调用

所以我一直在尝试为我的应用程序锻炼身份验证系统。我有一个 REST API 正在运行,它经过测试可以使用笔记本电脑上的 CURL 与 Oauth2 身份验证一起使用,这样我就可以获得 API 的令牌。


我的result变量doInBackground确实从我的 API 获得 JSON 响应,提供访问令牌信息、它的生命等。


就像我在result调试时得到这个值一样: {"access_token":"4Oq6o8oAGRf4oflu3hrbsy18qeIfG1","expires_in":36000,"token_type":"Bearer","scope":"read write","refresh_token":"iocSNJ2PTVbph2RnWmcf0Zv69PDKjw"}


但是,onPostExecute由于某种原因,我没有被调用。


这是我的代码。


login.java


public class Login extends AppCompatActivity {


    Button LoginButton, RegButton;

    EditText uUserName, uPassWord;

    WSAdapter.SendAPIRequests AuthHelper;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_login);


        //SetupHomeBtn = (ImageButton) findViewById(R.id.SetupHomeBtn);


        LoginButton = (Button) findViewById(R.id.LoginButton);

        RegButton = (Button) findViewById(R.id.LoginRegister);


        uUserName = (EditText) findViewById(R.id.LoginUserBox);

        uPassWord = (EditText) findViewById(R.id.LoginPassBox);


        //AuthHelper = new WSAdapter().new SendDeviceDetails();


        // Moves user to the main page after validation

        LoginButton.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                // gets the username and password from the EditText

                String strUserName = uUserName.getText().toString();

                String strPassWord = uPassWord.getText().toString();


                // API url duh

                String APIUrl = "http://192.168.0.18:8000/auth/token/";


                // If the user is authenticated, then transfer to the MainActivity page

                if (APIAuthentication(strUserName, strPassWord, APIUrl)){

                    startActivity(new Intent(Login.this, Posts.class));

                }

            }

        });

白猪掌柜的
浏览 107回答 1
1回答

子衿沉夜

所以我实际上只是想通了这一点。事实证明我的代码运行良好,只是当我调试时,我没有意识到“运行新线程”旁边有一个按钮或类似的东西。然后它把我送到了onPostExecute. 对不起,我是菜鸟。希望这可以对未来出现这个简单错误的人有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java