0

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

当前活动的代码:

     @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,我打开了共享图像的意图。当图像共享完成并且用户返回应用程序时,那时我想打开 Home 活动。问题是,它没有执行我onActivityResult()的 currentActivity 代码。

4

3 回答 3

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;
      }
   } 
于 2013-10-10T06:59:45.587 回答
0

像这样尝试像下面这样开始活动

  v.getContext().startActivityForResult(Intent.createChooser(share, Intent.createChooser(share, "Share via"),
                                            SHARE_PIC);
于 2013-10-10T07:14:38.397 回答
0

我不认为 IntentChooser 上的 startActivityForResult 会起作用。我将从另一个 SO 答案复制/过去:

那将无法可靠地工作。约 99% 的活动未设置为使用 startActivityForResult。

于 2013-10-10T07:22:04.517 回答