可以通过将静态字段保存到SharedPreferences中来解决这个问题。下面是示例代码:
public class MainActivity extends AppCompatActivity { private static final String PREFS_NAME = "MyPrefsFile"; private static final String KEY_STATIC_FIELD = "staticField"; private static int staticField;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 从SharedPreferences中获取静态字段的值
SharedPreferences prefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
staticField = prefs.getInt(KEY_STATIC_FIELD, 0);
}
@Override
protected void onPause() {
super.onPause();
// 将静态字段保存到SharedPreferences中
SharedPreferences prefs = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(KEY_STATIC_FIELD, staticField);
editor.apply();
}
}
在上面的代码中,我们将静态字段保存到SharedPreferences中,然后在onCreate()方法中从SharedPreferences中获取它的值。在onPause()方法中,我们将静态字段保存到SharedPreferences中。
这个解决方法确保了即使应用程序转到后台,静态字段的值也会得到保存。