有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在5秒后加载新活动

嗨,我一直在寻找让我的安卓应用程序加载StartActivity的方法。java 5秒钟,然后加载到MainActivity。java一次5秒就结束了。我发现的任何例子都不适用于我。我想知道是否有人能给我指出正确的方向

任何帮助都将不胜感激

星际触觉。爪哇

package com.example.testerrquin.euro2016fanguide;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;

public class StartActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start);

new CountDownTimer(5000, 1000) {

        public void onTick(long millisUntilFinished) {


        }

        public void onFinish() {

        }

    }.start();
}}

AndroidManifest。xml

<?xml version="1.0" encoding="utf-8"?>`<manifest xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
package="com.example.testerrquin.euro2016fanguide" >

<application
    安卓:allowBackup="true"
    安卓:icon="@mipmap/ic_launcher"
    安卓:label="@string/app_name"
    安卓:supportsRtl="true"
    安卓:theme="@style/AppTheme" >
    <activity
        安卓:name=".StartActivity"
        安卓:configChanges="orientation|keyboardHidden|screenSize"
        安卓:label="@string/title_activity_start"
        安卓:theme="@style/FullscreenTheme" >
        <intent-filter>
            <action 安卓:name="安卓.intent.action.MAIN" />

            <category 安卓:name="安卓.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

提前感谢您的回答`


共 (2) 个答案

  1. # 1 楼答案

    只需移除finish()并重试

    new Handler().postDelayed(new Runnable() {
       @Override
       public void run() {
       Intent startNewActivity = new Intent(CurrentActivity.this, MainActivity.class);
       startActivity(startNewActivity);
    
       }
    }, 5000);
    
  2. # 2 楼答案

    试试这个

    public class StartActivity extends AppCompatActivity {
    
        protected int SECONDS = 5;
        Handler handler = new Handler();
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_start);
    
            handler.removeCallbacks(runnable);
            handler.postDelayed(runnable, 1000);
    
        }
    
        private Runnable runnable = new Runnable() {
            public void run() {
                long currentMilliseconds = System.currentTimeMillis();
                SECONDS ;
                if (SECONDS > 0) {
                    handler.postAtTime(this, currentMilliseconds);
                    handler.postDelayed(runnable, 1000);
                } else {
                    Intent it = new Intent(StartActivity.this, MainActivity.class);
                    startActivity(it);
                    handler.removeCallbacks(runnable);
                    finish();
                }
            }
        };  
    }
    

    主要技巧是使用handler.postDelayed

    希望它能有所帮助