我正在开发一个应用程序,允许用户通过其他应用程序(whatsapp,facebook等)分享一些信息。一旦我完成共享,我想回到之前的活动。这是我到目前为止所尝试的内容 -
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 :(得分:0)
使用startActivityForResult而不是startActivity,在onActivityResult中,检查请求代码,如果结果成功,则调用方法ReturnToScoreBoard()
答案 1 :(得分: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()
}
}
我想我会详细说明拉维瓦德拉的解释。希望这会有所帮助。