如何保存网页信息?

时间:2017-10-30 14:34:56

标签: java android web wiki android-sharedpreferences

我希望我的应用每天只检查一次网页,所以我希望在再次启动应用时重新加载数据。 我关注了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;班总是开始。

2 个答案:

答案 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,因为字符串是新的,所以它们无法相互比较。