最佳实践?在活动之间传递参数

Mat*_*ert 5 android parameter-passing android-activity

在活动之间传递参数的最佳方式是使用 putExtra() 方法。可以通过 putParcelable() 传递对象。但并非所有对象都是可分块的。如果你想传递一个不可分割的对象,你怎么能做到这一点?

我通过在目标活动中创建一个静态对象变量并在调用活动中填充这个变量来解决这个问题。这是一个很好的可能性还是我不应该这样做。如果是,为什么?这会导致任何问题吗?

例子:

主要活动

class FirstActivity extends AppCompatActivity {

  MyOwnNotParcelableObject mObject;

  public void openNextActivity() {
    final Intent intent = new Intent(this, SecondActivity.class);
    SecondActivity.mObject = mObject;  //<--Fills the static variable
    startActivity(intent);
  }
}
Run Code Online (Sandbox Code Playgroud)

第二个活动

class SecondActivity extends AppCompatActivity {

  static MyOwnNotParcelableObject mObject;

}
Run Code Online (Sandbox Code Playgroud)

小智 1

使用静态对象并不是优选的。您可以将数据保存在共享首选项中,然后在其他活动中检索它。