问题描述
|
当我的应用程序安装并首次打开(有互联网连接时)时,我希望手机从服务器上下载一些信息并将其插入数据库中。
如果信息没有完全下载或完全没有下载,则应在完全下载之前进行此活动?
我将如何去做?
解决方法
使用首选项
在您的活动中:
private boolean isFirstLaunch() {
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME,0);
boolean isFirstLaunch = settings.getBoolean(\"isFirstLaunch\",true);
Log.i(TAG + \".isFirstLaunch\",\"sharedPreferences \");
return isFirstLaunch;
}
并来自onCreate
电话
if (isFirstLaunch()) {
Intent firstLaunchIntent = new Intent(this,GetStartedActivity.class);
firstLaunchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(firstLaunchIntent);
// set the bool to false in next activity !
finish();
}
, 在数据库,共享首选项或文件中添加标志,以表明您已下载数据。在onResume中,检查该标志以及设备是否具有连接性。如果该标志为假,并且您具有连接性,请尝试下载数据。
如果成功,则更新标志。
, 为此使用SharedPreference。创建一个布尔变量,并在操作完成后对其进行更改。在您的Main / Launcher活动的onCreate中,检查此变量并相应地执行操作。一些伪代码。
if (!sharedpreferences.getBoolean(\"isOpComplete\",false)) {
// perform my operation
performOperation();
}
performOperation() {
// Operation complete
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(\"isOpComplete\",true);
editor.commit();
}