2015-06-23 50 views
0

我可以在沒有UI的情況下從bach堆棧移除活動嗎?我可以在沒有用戶界面的情況下移除活動嗎?

我有一個活動ShareAct,沒有UI來包含共享邏輯使用Facebook的SDK。 ContentAct是顯示內容的活動。

ContentAct -> ShareAct -> Facebook sdk 

ShareAct沒有view,只是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

所有你需要做的就是調用finish()onActivityResult()

這將銷燬該活動一旦共享完成。

例如:

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

    finish(); //destroys the activity 
} 
+0

由於慢的網絡連接,所述ShareAct的黑色視圖將之前完成顯示一個或兩秒鐘。這可以避免,只是回到ContentAct? – Malloc

+0

爲什麼不簡單地顯示一個忙碌的對話框,同時它忙於做它的東西? – waqaslam

+0

我希望緩慢的連接不應該阻止用戶的操作,也許它可以在後臺完成這項工作。 – Malloc

相關問題