在Android中使用Java将接收意图设置回默认值

在Android中使用Java将接收意图设置回默认值,java,android,Java,Android,FirstActivity.java startActivity(new Intent(FirstActivity.this, SecondActivity.class) .putExtra("passed_value", true)); @Override public void onPageFinished(final WebView view, String url) { if(getIntent().getBoolean

FirstActivity.java

startActivity(new Intent(FirstActivity.this, SecondActivity.class)
                    .putExtra("passed_value", true));
@Override
    public void onPageFinished(final WebView view, String url) {
         if(getIntent().getBooleanExtra("passed_value", false)){

         }
    }
SecondActivity.java

startActivity(new Intent(FirstActivity.this, SecondActivity.class)
                    .putExtra("passed_value", true));
@Override
    public void onPageFinished(final WebView view, String url) {
         if(getIntent().getBooleanExtra("passed_value", false)){

         }
    }
FirstActivity.java
接收到意图值后,每次重新加载都会运行
if
块。但是我只需要在
onPageFinished
方法中运行这个意图


那么,如何仅当来自
FirstActivity.java
时才运行
if
块呢。有没有什么方法可以让我在执行
if
块后将此intent值恢复为默认值?

一个相当简单的方法是使用
Boolean passedValue
变量,在
onCreate
中用intent extra实例化,然后在
if
块中设置为false。以下几点应该行得通

public class SecondActivity extends AppCompatActivity {

    Boolean passedValue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        passedValue = getIntent().getBooleanExtra("passed_value", false);
        //Other code things
    }

    @Override
    public void onPageFinished(final WebView view, String url) {
         if(passedValue){
            //Do what you need to do
            passedValue = false
         }
    }
}

SecondActivity
中,创建一个类级变量,作为
boolean passed\u value=false

然后在
onCreate()
中,更改其值,如-
passed_value=getIntent().getBooleanExtra(“passed_value”,false)

最后,您可以像这样使用它-

@Override
public void onPageFinished(final WebView view, String url) {
     if(passed_value){

     }
}