Intent完成后调用函数

时间:2012-05-31 12:16:19

标签: java android android-intent

我认为这是一个简单的问题,但无法找到答案。 我收到了这段代码:

 public void onButtonClick(View v) {

    Intent intent = new Intent();
    intent.setAction(android.content.Intent.ACTION_VIEW);
    File file = new File(root + "/Doppen/"+ "doppen.txt");
    intent.setDataAndType(Uri.fromFile(file), "text/*");
    startActivityForResult(intent, 1);                   
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, getIntent());
    if(resultCode==RESULT_OK && requestCode==1){
        System.out.println("RESULT :D");
    }
}

知道这里有什么问题吗?

我打开一个文本文件,但在用户点击“保存”后,我想调用另一个函数。 如何自动完成?
那么如何检查用户点击“保存”或意图何时完成/完成?

编辑1: 我发现了一个问题: 当我发表评论if(resultCode==RESULT_OK && requestCode==1){时它会在结果完成后打印结果,所以我知道它出错的地方,现在为什么问题:p

编辑2:

requestCode会打印“1”,所以这很好。但是,resultCode打印“0”,不好。

编辑3:

找到答案,也许对其他人有用 按下Save后,我使用(手机的)后退按钮返回应用程序,但这会给出一个“0”的resultCode。

1 个答案:

答案 0 :(得分:3)

致电startActivityForResult()而非startActivity()。活动完成后,您将收到活动onActivityResult()方法的回调,您可以在此处执行所需操作。

有关详细信息,请参阅the documentation


编辑:RESULT_OK是标准结果代码,但活动可以自由返回大于或等于RESULT_FIRST_USER的其他值。零是RESULT_CANCELED,通常在有人敲回“后退”按钮时发生。