我可以从bach堆栈中删除没有UI的活动吗?

时间:2015-06-23 10:05:55

标签: android android-activity

我可以从bach堆栈中删除没有UI的活动吗?

我有一个活动ShareAct,没有UI包含共享逻辑使用Facebook sdk。 ContentAct是显示内容的活动。

ContentAct -> ShareAct -> Facebook sdk

ShareAct没有视图,只有onActivityResult()方法来处理Facebook的返回结果。

问题是在Facebook sdk分享之后,ShareAct走到了前面,但它没有用户界面。 如果我在调用Facebook sdk后调用了ShareAct的finish(),则不会调用onActivityResult()。

我可以从bach堆栈中删除ShareAct但是要正常调用onActivityResult()吗? 或者这不是使用活动的正确方法吗?

ShareAct代码如下所示:

public class ShareAct extends BaseAct {
    CallbackManager callbackManager;
    ShareDialog shareDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        callbackManager = CallbackManager.Factory.create();
        shareDialog = new ShareDialog(this);

        shareLink(...);

        // finish();
    }

    private void shareLink(String url, String title, String desc, String imagePath) {
        if (ShareDialog.canShow(ShareLinkContent.class)) {
            ...
            shareDialog.show(linkContent);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }

}

1 个答案:

答案 0 :(得分:0)

您需要做的就是在finish()内拨打onActivityResult()

一旦共享完成,这将销毁该活动。

例如:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   callbackManager.onActivityResult(requestCode, resultCode, data);

   finish();   //destroys the activity
}