当前位置: 代码迷 >> Android >> 如何持有 SplashActivity?
  详细解决方案

如何持有 SplashActivity?

热度:44   发布时间:2023-08-04 11:21:39.0

我有以下活动:

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 ,并在收到响应时打开其他活动。 没关系,除了我需要显示SplashActivity至少 4 秒。 那么我接下来该怎么做:

如果自显示活动开始经过 4 秒并得到响应显示MainActivity其他等待?

作为响应使用计时器

    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);
  相关解决方案