gpt4 book ai didi

c# - 当应用程序要关闭时,如何在 SharedPreferences c# 中保存 int?

转载 作者:行者123 更新时间:2023-11-30 00:52:57 25 4
gpt4 key购买 nike

我想在应用关闭时保存 SharedPreferences 中的点击次数。现在我有了一个按钮连接的功能

   private void SaveClicks (){
var prefs = Application.Context.GetSharedPreferences("Name",FileCreationMode.Private);
var prefEditor = prefs.Edit();
prefEditor.PutInt("Key", nametest);
prefEditor.Apply();

}

“clicks”是 int 的名称,我在其中存储其中一个按钮的点击次数

当应用程序即将关闭时,我可以通过什么方式自动执行此操作?使用 onDestroy 会是很好的解决方案吗?

//更新所以我写了这段代码:

protected override void OnDestroy()
{
var prefs = Application.Context.GetSharedPreferences("Name", FileCreationMode.Private); // 1
var prefEditor = prefs.Edit(); // 2
prefEditor.PutInt("Key", nametest); // 3
prefEditor.Apply(); // 4


}

为了计算点击次数,我有类似的东西

var prefs = Application.Context.GetSharedPreferences("Name", FileCreationMode.Private); // 1
var value1 = prefs.GetInt("key", 0);
if (clicks + value1 <= 499)
{
clicks++;
textViewBattlepackCount.Text = (clicks + value1).ToString() + " clicks!";
progressBarName1.Progress = progressBarName1.Progress + 1;
nametest= clicks + value1;


if (clicks + value1 == 500)
{
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.SetTitle("You won!");
alertDialog.SetMessage("message");
alertDialog.SetNeutralButton("Ok", delegate
{

alertDialog.Dispose();

});
alertDialog.Show();

clicks = 0;
nametest= 0;

textViewTXTCount.Text = "0";
progressBarName1.Progress = progressBarName1.Progress = 0;

}

但 onDestroy() 中的点击次数有时只是存储,一次有正确的数字,但另一次在终止 Activity 并重新启动应用程序后有旧的点击次数。我不知道为什么。抱歉描述困惑

最佳答案

这取决于您的要求:

  1. 如果您只想在 Activity 被终止时存储点击次数。使用 OnDestory()

  2. 如果您想在 Activity 处于后台时存储点击次数(例如,您按下主页按钮或另一个 Activity 启动),请使用 onPause();

  3. onSaveInstanceState() 也可以在activity销毁之前调用,它可以恢复一些临时数据(例如EditText中的文本)。

关于c# - 当应用程序要关闭时,如何在 SharedPreferences c# 中保存 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40644512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com