当我的应用程序安装并首次打开时(当有互联网连接时)我希望手机从我的服务器下载一些信息并将其插入数据库。
如果信息未完全下载或完全下载,此活动应该发生,直到完全下载?
我将如何做到这一点?
答案 0 :(得分:3)
使用偏好
在您的活动中:
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();
}
答案 1 :(得分:1)
使用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();
}
答案 2 :(得分:1)
在数据库中添加标记,共享首选项或指示您已下载数据的文件。在onResume中,检查该标志以及设备是否具有连接。如果标志为false且您有连接,请尝试下载数据。
如果成功,请更新标志。