Заставка не появляется - PullRequest
0 голосов
/ 01 мая 2019

Сначала экран Splash работал, но когда я добавил больше кода (операторы if в коде ниже), он перестал появляться.

Код должен вызывать класс AsyncTask.Я попытался переместить операторы if в AsncTask, который вызывает SQLiteHelper.Это не сработало.Я прочитал несколько сообщений об этом, в которых я обнаружил, что SQLiteHelper не может быть вызван из AsynTask.

Во время сценария Splash мне нужно скачать файл, которого он не существует, а затем сохранить файл вSQLite, и, наконец, получить данные файла из SQLIte.

public class SplashActivity extends AppCompatActivity {

    String fileName = "movies.json";
    static String appName = "JSONApp";
    String path = getExternalStorageDirectory() + "/" + appName + "/" + fileName;
    ArrayList<Movie> moviesList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_splash);

        File file = new File(path);

        //checking if movies.json exists
        if (file.exists()) {
            Log.d(TAG, path + " exists");
            moviesList = new JsonToSQLiteHelper(this).getMovies();
            toMainActivity(moviesList);
        }
        else if (!shouldCheckPermission()) {
            Log.d(TAG, "The JSON file doesn't exists");

            Log.d("", "permission was already granted");
            moviesList = FromJsonToSQLite();
            toMainActivity(moviesList);
        } else {
            if (shouldCheckPermission()) {
                Log.d("", "Permission was checked.");
                requestPermissionAndContinue();
                Log.d("", "permission was denied");
            } else {
                Log.d("", "permission was denied and then given?");
                moviesList = FromJsonToSQLite();
                toMainActivity(moviesList);
            }
        }
    }

1 Ответ

0 голосов
/ 10 мая 2019

На заставке нет времени ожидания.Следовательно, он напрямую перейдет на главный экран.Вы можете поставить таймер и установить время ожидания.Если вы используете asynctask, поделитесь кодом.

...