2014-11-04 88 views
0

我正在開發一個應用程序,允許用戶通過其他應用程序(WhatsApp,Facebook等)共享一些信息。一旦完成分享,我想回到之前的活動。這是我迄今爲止所嘗試的 -startactivity(intent)interrupt Intent.ACTION_SEND

public void ShareSelectedResults() 
{ 
    Intent sharing = new Intent(); 
    sharing.setAction(Intent.ACTION_SEND); 
    String message = MakeMessage(); //compose message, just text 
    sharing.putExtra(Intent.EXTRA_TEXT, message); 
    sharing.setType("text/plain"); 
    startActivity(Intent.createChooser(sharing, "Share result with")); 
    selected_results.clear();  //static array_list emptied 
    //ReturnToScoreBoard();   //return to previous activity 
} 

public void ReturnToScoreBoard() 
{ 
    Intent intent = new Intent(getApplicationContext(), Scoreboard.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
} 

一切工作正常,即我可以分享我的結果。但是,如果我將代碼行ReturnToScoreBoard();添加到代碼中,我將返回到之前的活動而不允許共享。只有共享意圖完成後,是否有方法可用於返回上一個活動?

在此先感謝

+0

where is finish()activity – 2014-11-04 07:46:38

+0

Intent intent = new Intent(getApplicationContext(),Scoreboard.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish(); – 2014-11-04 07:46:54

+0

沒有,仍然回到以前的活動,不允許分享 – 2014-11-04 08:02:32

回答

0

使用startActivityForResult而不是startActivity和onActivityResult,檢查請求的代碼,如果結果是成功,則調用該方法ReturnToScoreBoard()

0
public void ReturnToScoreBoard() 
{ 
    Intent intent = new Intent(getApplicationContext(), Scoreboard.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivityForResult(intent, RESULT_CODE); 
} 

,然後執行作爲RaviVadera說過。在這樣的活動句柄是這樣的:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
// Check which request we're responding to 
if (requestCode == REQUEST_CODE) { 
    // Make sure the request was successful 
    if (resultCode == RESULT_OK) { 
     ReturnToScoreBoard() 
    } 
} 

只是想我會詳細闡述RaaviVadera的解釋。希望這可以幫助。

相關問題