知识为进步之母,而进步又为富强之源泉。这篇文章主要讲述用户杀死Android应用后保存状态相关的知识,希望能为你提供帮助。
我一直在努力解决我的一些项目。我需要保存2个TextView
值,以便当用户按下后退按钮或重新启动手机然后返回到应用程序时它们就在那里。到目前为止,我已经尝试了很多方法,但不知何故它将无法工作..该应用程序显示一个带有“目标”的TextView
,用户自己输入。第二个TextView
显示了许多“光束”,用户自己再次输入。我已经能够在用户旋转屏幕时保留数据,但是在应用程序被杀之后保存数据更加困难。
public class MainActivity extends AppCompatActivity {SharedPreferences preferences;
TextView showGoalTextView;
TextView showBeamsTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showGoalTextView = (TextView) findViewById(R.id.textView3);
showBeamsTextView = (TextView) findViewById(R.id.textView2);
preferences = getSharedPreferences("userData", MODE_PRIVATE);
updateGoalTextView();
}
和
updateGoalTextView()
方法:public void updateGoalTextView() {
String goalSave = showGoalTextView.getText().toString();
String beamsSave = showBeamsTextView.getText().toString();
SharedPreferences preferences = getSharedPreferences("userData", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("goals", goalSave);
editor.putString("beam", beamsSave);
editor.apply();
// get the saved string from shared preferences
String name1 = preferences.getString("goals", "");
// set reference to the text view
showGoalTextView = (TextView) findViewById(R.id.textView3);
// set the string from sp as text of the textview
showGoalTextView.setText(name1);
}
updateGoalTextView
在onCreate
被召唤。希望我使用的方法是正确的,因为如果我在带有AS的手机上运行它,它就不会保存数据并重新创建它。【用户杀死Android应用后保存状态】知道怎么解决吗?要更清楚地了解我的意思,请下载我的测试版应用:https://play.google.com/store/apps/details?id=jhpcoenen.connectlife.beams
谢谢,所有人都有答案。在回顾了解答并在GOOGLE上搜索之后,我最终修复了它。
答案您可以使用
SharedPreference
非常容易地存储TextView
或EditText
的值。如果要使用自动保存,则可以使用TextWatcher
获取文本类型事件,也可以使用onPause()和onResume()方法来存储和读取值。以下是在
SharedPreferences
中存储数据的示例代码。初始化
SharedPreferences
-SharedPreferences pref=getSharedPreferences("my_shared_preferences",MODE_PRIVATE);
要在
SharedPreferences
中存储数据 -SharedPreferences.Editor editor=pref.edit();
editor.putString("key1","value 1");
editor.putString("key2","value 2");
editor.commit();
要从
SharedPreferences
读取数据 -String var1=pref.getString("key1","")
String var2=pref.getString("key2","")
希望它能帮助您找到解决方案。谢谢。
推荐阅读
- Android studio - 无法连接到LDAP服务器
- Android中TextView的TextAppearance属性
- Android(为什么TextView中的文本在LinearLayout中滚动而在Recyclerview中滚动)
- Android(以编程方式添加Textview,而不是将文本包装到下一行)
- Android上的化学公式
- 如何以编程方式制作可绘制的形状(Android)
- 5个最佳javascript和jQuery工具提示插件
- 5个最佳jQuery社交共享插件
- 5个最佳网页预加载器插件