onActivityResult()方法总是返回0 - Android

时间:2013-10-10 06:50:48

标签: android android-intent android-activity onactivityresult

在我的Android应用程序中,我提供了图像共享功能。现在,我希望在完成当前活动的图像共享功能后,应将用户重定向到HomeActivity。为此,我的代码中有用户onActivityResult()方法。但问题是,它总是返回0,因此它不会启动HomeActivity。我去了很多帖但却无法得到解决方案。请帮我解决这个问题。 感谢。

CurrentActivity代码:

     @Override
            public void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);
                try {
                    switch (requestCode) {
                    case SHARE_PIC:

//The following condition is not satisfied while debugging.
                        if (resultCode == Activity.RESULT_OK) {
                            GlobalClass.finalPath = null;
                            FaceFrameActivity_temp.this.finish();
                            Intent in = new Intent(FaceFrameActivity_temp.this,
                                    HomeActivity.class);
                            in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                            startActivity(in);
                            GlobalClass.finalPath = null;
                        }
                        break;
                    }
                } catch (Exception ex) {
                    ex.printStackTrace();
                }


           //Button click will handle sharing functionality.
           btnOk.setOnClickListener(new OnClickListener() {
                            @Override
                            public void onClick(View v) {

                                if (txtFile.getText().toString().trim().length() > 0) {

                                    if (GlobalClass.finalPath == null) {
                                        finalBitmap = FaceFrameActivity_temp.this.frmView
                                                .getDrawingCache();
                                        SaveToSDcard(finalBitmap, txtFile.getText()
                                                .toString());

                                    }


                                    Intent share = new Intent(Intent.ACTION_SEND);

                                    share.setType("image/*");
                                    share.putExtra(Intent.EXTRA_STREAM, Uri
                                            .fromFile(new File(GlobalClass.finalPath)));

                                    FaceFrameActivity_temp.this.startActivityForResult(
                                            Intent.createChooser(share, "Share via"),
                                            SHARE_PIC); //SHARE_PIC = 3
                                }
                            }
                        });

从currentActivity,我已经打开了Intent来共享图像。当图像共享完成并且用户返回应用程序时,那时我想打开Home活动。问题是,它不执行我的currentActivity的onActivityResult()代码。

3 个答案:

答案 0 :(得分:1)

您可以设置从回归到第二个活动到家庭活动的价值。

像这样

Intent result = new Intent();
     result.putExtra("ARTICLE", main_String);                   
     setResult(101, result);                    
     finish();  

在家庭活动中设置这样的条件。

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data); 

 switch(resultCode){

    case 101:
                  // your condition.....

         break;

    case 102:
                    // your condition.....
         break;

    case 103:
             // your condition.....
        break;
      }
   } 

答案 1 :(得分:0)

试试这样 像下面一样启动活动

  v.getContext().startActivityForResult(Intent.createChooser(share, Intent.createChooser(share, "Share via"),
                                            SHARE_PIC);

答案 2 :(得分:0)

我认为IntentChooser上的startActivityForResult不会起作用。 我将从another SO answer复制/过去:

  

这将无法可靠地运作。约99%的活动没有开始工作   使用startActivityForResult。