Как сделать операцию при первом запуске приложения Android - PullRequest
1 голос
/ 16 июня 2011

Когда мое приложение устанавливается и открывается впервые (при наличии подключения к Интернету), я хочу, чтобы телефон загрузил некоторую информацию с моего сервера и вставил ее в базу данных.

если информация загружается не полностью или не загружается вообще, это действие должно выполняться до полной загрузки?

Как бы я поступил так?

Ответы [ 3 ]

3 голосов
/ 16 июня 2011

Используйте настройки

в вашей активности:

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 голос
/ 16 июня 2011

Добавьте флаг в вашу базу данных, общие настройки или файл, который указывает, что вы загрузили данные.В onResume проверьте этот флаг и убедитесь, что у устройства есть подключение.Если флаг имеет значение false и у вас есть подключение, попытайтесь загрузить данные.

Если это было успешно, обновите флаг.

1 голос
/ 16 июня 2011

Используйте SharedPreference для этого.Создайте логическую переменную и измените ее после завершения операции.В onCreate вашей активности Main / Launcher проверьте эту переменную и выполните соответствующую операцию.Какой-то псевдо-код.

if (!sharedpreferences.getBoolean("isOpComplete", false)) {
    // perform my operation 
    performOperation();
}

performOperation() {
    // Operation complete
    SharedPreferences.Editor editor = sharedpreferences.edit();
    editor.putBoolean("isOpComplete", true);
    editor.commit();
}
...