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

时间:2016-06-16 07:41:35

标签: java android android-activity

不确定这是知道行为还是什么,但这是逻辑流程:

  1. 用户打开应用
  2. 拉出导航抽屉,点击个人资料照片进行更改
  3. 图库意图弹出,用户选择图像,一切正常
  4. 打开图库的后续尝试工作正常,选择图片后,应用程序挂起
  5. 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;
                        }
                    });*/
                }
            }
    

1 个答案:

答案 0 :(得分:0)

我认为你错过了Manifest中的读访问权限 -

{{ $counter }}