Задать вопрос
@Chesterfield25

Как в зависимости от результата запроса продолжить работу приложения?

У меня есть приложение, при открытие которого нужно что бы оно отправляло на сервер имя пакета, если от сервера получит ответ с идентичным пакетом то продолжало работать если от сервера нет ответа вообще или же пакет не совпадает то приложение должно закрываться. В моем случае на данный момент нет какой либо обработки запроса но приложение продолжает работать.

public class SplashScreenActivity extends AppCompatActivity {

    public static String PACKAGE_NAME;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if(postRequest()) {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    startActivity(new Intent(SplashScreenActivity.this, MainActivity.class));
                }
            }, 5000);
        } else {
            finish();
            System.exit(0);
        }
    }

    private boolean postRequest() {
        RequestQueue requestQueue = Volley.newRequestQueue(SplashScreenActivity.this);
        String url = "https://site.ru/api/v1/";
        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Toast.makeText(getApplicationContext(),"OK", Toast.LENGTH_SHORT).show();
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(),"Post Data : Response Failed", Toast.LENGTH_SHORT).show();
            }
        }){
            @Override
            protected Map<String,String> getParams(){
                Map<String, String>  params = new HashMap<String, String>();
                params.put("app", PACKAGE_NAME = getApplicationContext().getPackageName());

                return params;
            }

            @Override
            public Map<String,String> getHeaders() throws AuthFailureError {
                Map<String, String>  params = new HashMap<String, String>();
                params.put("Content-Type", "application/x-www-form-urlencoded");
                return params;
            }
        };

        requestQueue.add(stringRequest);
        return true;
    }
}
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
postRequest() всегда возвращает true.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы