У меня есть приложение, при открытие которого нужно что бы оно отправляло на сервер имя пакета, если от сервера получит ответ с идентичным пакетом то продолжало работать если от сервера нет ответа вообще или же пакет не совпадает то приложение должно закрываться. В моем случае на данный момент нет какой либо обработки запроса но приложение продолжает работать.
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;
}
}