Сначала экран 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);
}
}
}