我想知道如何保持整数值和布尔值,即使应用程序关闭…
我试过使其静态并按回,直到应用程序退出(使用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/drawable
for imagesres/mipmap
for iconsres/raw
for musicres/values
for 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)
在问这些基本问题之前,请阅读一些文档和教程…这样的问题在网上有成千上万的答案,只要搜索