我希望我的应用每天只检查一次网页,所以我希望在再次启动应用时重新加载数据。
我关注了this tutorial,但我无法使用MainActivity extends AppCompatActivity
保存结果:
String url = "https://en.wikipedia.org/wiki/Main_Page";
SharedPreferences data;
SharedPreferences.Editor dataEditor;
String sDate = date.getString("date", "");
DateFormat df = new SimpleDateFormat("MMMM d");
String date = df.format(Calendar.getInstance().getTime());
if(sDate != date){ // <-- this does not work
new Date().execute();
}
和Date extends AsyncTask<Void, Void, Void>:
Document document = Jsoup.connect(url).get();
Elements date = document.select("div#mp-otd p b");
String sDate = date.getText();
dataEtitor.setString("date", sDate)
dataEtitor.commit;
&#34;日期扩展了AyncTask&#34;班总是开始。
答案 0 :(得分:0)
editor.commit()
用于保存对共享首选项的更改。
在setString
之后添加以下代码行dataEtitor.commit(); // commit changes
SharedPreferences示例如下
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
Editor editor = pref.edit();
存储数据
editor.putBoolean("key_name", true); // Storing boolean - true/false
editor.putString("key_name", "string value"); // Storing string
editor.putInt("key_name", "int value"); // Storing integer
editor.putFloat("key_name", "float value"); // Storing float
editor.putLong("key_name", "long value"); // Storing long
editor.commit(); // commit changes
检索数据
pref.getString("key_name", null); // getting String
pref.getInt("key_name", null); // getting Integer
pref.getFloat("key_name", null); // getting Float
pref.getLong("key_name", null); // getting Long
pref.getBoolean("key_name", null); // getting boolean
清除或删除数据
editor.remove("name"); // will delete key name
editor.remove("email"); // will delete key email
editor.commit(); // commit changes
editor.clear();
editor.commit(); // commit changes
答案 1 :(得分:0)
您使用!(sDate.equals(date)
代替sDate != date
,因为字符串是新的,所以它们无法相互比较。