Java 如何举办体育活动?
我有以下活动:Java 如何举办体育活动?,java,android,android-volley,Java,Android,Android Volley,我有以下活动: public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); StringRequest req = new Str
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
StringRequest req = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Intent mainIntent = new Intent(SplashActivity.this, MainActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Handle error
}
});
CustomVolleyRequestQueue.getInstance(mCtx).addToRequestQueue(req);
}
}
公共类SplashActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
StringRequest req=新的StringRequest(Request.Method.GET,url,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Intent maintent=新的Intent(SplashActivity.this、MainActivity.class);
SplashActivity.this.startActivity(主要目的);
SplashActivity.this.finish();
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
//处理错误
}
});
CustomVolleyRequestQueue.getInstance(mCtx).addToRequestQueue(req);
}
}
当发送请求时,它显示SplashActivity
,当收到响应时,打开其他活动。没关系,只是我需要显示SplashActivity
至少4秒钟。那么我下一步该怎么做:
如果自开始显示活动后经过4秒并得到响应showMainActivity
else wait?在响应中使用计时器
private final int DELAY = 4000;
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Intent mainIntent = new Intent(SplashActivity.this, MainActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
timer.cancel();
}
}, DELAY);
使用
Handler
用于此目的如果您的意思与此答案类似,我无法确定如何检查我是否收到了响应,如果没有,则等待直到收到请求?使用Chronometer
但是如果请求的时间很长,设为5秒,则等待时间将为5秒+延迟,用于该使用系统。在请求调用之前,currentTimeMillis()将再次成功调用系统。currentTimeMillis()将查找差异,如果小于5秒,则延迟将为5000-剩余时间如果大于5000,则无需调用计时器直接启动MainActivity