2014-11-04 85 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的解释。希望这可以帮助。

相关问题