繁体   English   中英

后续调用startActivityForResult后,Android应用程序挂起

[英]Android app hangs after subsequent call to startActivityForResult

不知道这是否是已知的行为或什么,但这是逻辑流程:

  1. 用户打开应用
  2. 拉出导航抽屉,单击个人资料照片进行更改
  3. 画廊意图弹出,用户选择图像,一切正常
  4. 以后尝试打开画廊的尝试正常,选择图片后,应用程序挂起

不调用onResume(),也不调用onActivityResult()。 我什至注释掉了onActivityResult中的所有代码,并且仍然会发生。 有什么想法会导致这种情况吗?

这是主要活动中onCreate()的代码

    ImageButton profilePictureButton = (ImageButton) findViewById(R.id.change_profile_picture);
    profilePictureButton.requestFocus();
    profilePictureButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");

            startActivityForResult(intent, 1);
        }
    });

这是处理程序:

@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
    if(resultCode == RESULT_OK) {
        if(requestCode == 1) {
            ImageView view = ((ImageView) findViewById(R.id.nav_profile_picture));

            if(data != null) {
                /*Picasso.with(this).load(data.getData()).into(view);

                UsersCache.getInstance().GetUser("", new Response.Listener<UserItem>() {
                    @Override
                    public void onResponse(UserItem response) {
                        String pictureName = response.username + UUID.randomUUID().toString();
                        String url = "<redacted>";

                        JSONObject requestBody = new JSONObject();
                        try {
                            requestBody.put("profilePicture", "<redacted>/media/profile_pictures/" + pictureName);
                        } catch(JSONException e) {
                            e.printStackTrace();
                            return;
                        }

                        FlareJsonObjectRequest request = new FlareJsonObjectRequest(Method.POST, url, requestBody, new Response.Listener<JSONObject>() {
                            @Override
                            public void onResponse(JSONObject response) {
                                String tet = null;
                            }
                        }, new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
                                String tet = null;
                            }
                        });

                        new AmazonS3Uploader(data.getData(), "profile_pictures/" + pictureName);

                        VolleyQueue.getInstance().getQueue().add(request);
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        String tet = null;
                    }
                });*/
            }
        }

我认为您缺少清单中的读取访问权限-

android:name="android.permission.READ_EXTERNAL_STORAGE" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM