简体   繁体   English

如何保存网页信息?

[英]How to save web page informations?

I want my app to check some web page only once a day, so I want the data to be saved anded reloaded upon starting the app again. 我希望我的应用每天只检查一次某个网页,因此我希望在再次启动该应用后保存并重新加载数据。 I followed this tutorial , but I can not save the result with MainActivity extends AppCompatActivity : 我遵循了本教程 ,但是我无法使用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();
}

and Date extends AsyncTask<Void, Void, Void>: 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;

The "Date extends AyncTask" class always start. “日期扩展AyncTask”类始终会启动。

editor.commit() is used in order to save changes to shared preferences. editor.commit()来将更改保存到共享首选项。

Add below line of code after setString 在setString之后添加下面的代码行

dataEtitor.commit(); // commit changes

SharedPreferences Example as follow SharedPreferences示例如下

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
Editor editor = pref.edit();

Storing Data 储存资料

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

Retrieving Data 检索数据

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

Clearing or Deleting Data 清除或删除数据

editor.remove("name"); // will delete key name
editor.remove("email"); // will delete key email

editor.commit(); // commit changes

editor.clear();
editor.commit(); // commit changes

您会用!(sDate.equals(date)代替sDate != date ,因为这些字符串是新字符串,因此它们无法相互比较。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM