Поэтому я пытаюсь ускорить запуск моего приложения и сделать доступной мою логику синтаксического анализа во время выполнения для кнопки «refresh».
Я анализирую 2 JSON при запуске с 2 разных URLс Volley + GSON => Room Database
Теперь я хочу, чтобы мой LoadDataFromServer () находился в другом классе, поэтому я могу вызывать его из любого места в моем приложении, дождаться обратного вызова onsuccess, чтобы узнать, был ли анализуспешно или нет / не удалось и обработать этот обратный вызов в моей деятельности по вызову.
Как я могу это сделать?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startup);
clearAllTables();
LoadDataFromServer();
}
public void clearAllTables() {
AppDatabase db = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, "database").allowMainThreadQueries().build();
db.clearAllTables();
db.close();
}
public void LoadDataFromServer() {
final JsonObjectRequest requestOne = new JsonObjectRequest(Request.Method.GET, URL1, null, new Response
@Override
public void onResponse(JSONObject response) {
.. handling the response:
insertData(Object1);
i= i+1;
} catch (JSONException e) {
e.printStackTrace();
}
@Override
public void onErrorResponse(VolleyError error) {
splashstatus.setText("Error");
Log.e("VOLLEY ERROR",error.toString());
}
}
public void LoadDataFromServer() {
final JsonObjectRequest requestTwo = new JsonObjectRequest(Request.Method.GET, URL1, null, new Response
@Override
public void onResponse(JSONObject response) {
.. handling the response:
insertData(Object2);
i = i+1
} catch (JSONException e) {
e.printStackTrace();
}
@Override
public void onErrorResponse(VolleyError error) {
splashstatus.setText("Error");
Log.e("VOLLEY ERROR",error.toString());
}
}
}
requestOne.setRetryPolicy(new DefaultRetryPolicy(
10000,
3,
2));
requestTwo.setRetryPolicy(new DefaultRetryPolicy(
10000,
3,
2));
public void starter (int i) {
if (i == 2) {
//START MAIN ACTIVITY
}
public void insertData(Objects[] object) {
AppDatabase db = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, "database").allowMainThreadQueries().build();
for() {
// INSERTING ALL THE DATA IN TO THE DATABASE
}
}
}
}