布尔值即使在应用程序关闭后也必须保留



我想知道如何保持整数值和布尔值,即使应用程序关闭…

我试过使其静态并按回,直到应用程序退出(使用onStop方法),但当我关闭应用程序(使用onDestroy)变量值回到其默认值…

我很感激知道这个简单的解决方案,最后我想知道是否有一种方法来编辑资产文件…

当您启动程序时,所有变量都存储在RAM(快速存储器)中。当然,一旦你关闭应用程序,它们就会消失,因为RAM中的所有应用程序数据都被删除了。

如果你没有完全关闭应用程序,你可能给onCreate()中的变量赋了一个值。无论这个值是什么,都应该在声明变量的地方直接赋值(例如boolean x = true);

static仅表示class X中的变量不是X(new X())的每个实例的属性,而是该类的唯一变量。

你要做的是将数据保存在内部存储器中。对于少量数据(最多几千个变量),最好的方法是使用SharedPreferences

它们使用键-值系统:每个都是一个String,总是映射到一个,该值可以是大多数基本类型s (boolean,short,int,long,float)或String/Set<String>

您可能使用extends)AppCompatActivity的类。在这里,您应该已经有了一个名为onCreate(Bundle savedInstanceState)的方法。您将需要这些所谓的生命周期方法中的另一个,称为onPause()。当你的AppCompatActivity而不是时,这个方法被调用。集中了。对于像

这样的事件会发生这种情况
  • 退出应用
  • 关闭应用程序
  • 关机
  • 打开Google assistant。

这是你需要使用的代码:

public void onPause() {
SharedPreferences.Editor editor = getApplicationContext().getSharedPreferences("ANY NAME", MODE_PRIVATE).edit();
editor.putBoolean("ENTER_THE_NAME", enter_boolean_name);
// ... you can e.g. use putInt(String, int);
editor.commit();
}

要取回它:

public void onCreate(Bundle savedInstanceState) {
SharedPreferences prefs = getApplicationContext().getSharedPreferences("ANY NAME", MODE_PRIVATE);
enter_boolean_name = prefs.getBoolean("ENTER_THE_NAME");
}

我不太明白

编辑资产文件

的意思。

您可以在任何编辑器中编辑您的资源文件,并将它们放入

  • res/drawablefor images

  • res/mipmapfor icons

  • res/rawfor music

  • res/valuesfor text

并使用Resources实例(getResources())

访问它们如果你想在你的应用程序中修改图形资源,你可以使用android的位图:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
options.inMutable = true;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.whatever, options);

可以在Bitmap上调用setPixel()getPixel()。如果这些选项对您来说还不够,请使用Canvas:

Canvas canvas = new Canvas(bitmap);

你可以在你的Canvas上绘制形状和其他比特,它会修改bitmap

我认为你需要使用共享偏好或数据存储。,

阅读本文档,选择您最喜欢的存储持久性数据的方式,我会使用useSharedPreferences(walkthrough HERE)

在问这些基本问题之前,请阅读一些文档和教程…这样的问题在网上有成千上万的答案,只要搜索

最新更新