检查 onResume() 方法的原因

Ahm*_*man 5 java android android-studio

我需要检查 onResume() 是否因为活动第一次启动(第一种情况)而被调用,还是因为使用 startActivityForResult 后的结果返回(第二种情况)而被调用。

我需要知道,因为如果案例是案例 2,我需要滚动到特定视图,如果案例是案例 1,我需要正常启动活动。

那么我应该使用的 if 条件是什么?

raf*_*007 1

如果您正在使用startActivityForResult()则无需监听onResume()被呼叫。它有一个回调方法,您可以根据您的情况编写滚动代码。

例如:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1); //here 1 is the request code
Run Code Online (Sandbox Code Playgroud)

在 SecondActivity 中设置要返回到 FirstActivity 的数据。如果您不想返回,请不要设置。

例如:在 SecondActivity 中:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_OK,returnIntent);
finish();
Run Code Online (Sandbox Code Playgroud)

现在,在您的 FirstActivity 类中为 onActivityResult() 方法编写以下代码。

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

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            //case 2
            //Write your code
        }
    }
}
Run Code Online (Sandbox Code Playgroud)