我可以从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);
}
}
答案 0 :(得分:0)
您需要做的就是在finish()
内拨打onActivityResult()
。
一旦共享完成,这将销毁该活动。
例如:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
finish(); //destroys the activity
}