Android中如何在postDelayed方法中使用Intent实现闪屏延时跳转
问题原因
postDelayed()方法的第一个参数要求接收Runnable接口实例,你直接传入startActivity(startApp)的执行结果,startActivity()为无返回值方法,完全不匹配参数要求,因此会触发报错,同时跳转逻辑会直接执行,无法实现延迟效果。
修正后代码
package id.ac.umn.finalproject; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent startApp = new Intent(MainActivity.this, PemasukanActivity.class); // 传入Runnable实例,将跳转逻辑封装在run方法内 new Handler().postDelayed(new Runnable() { @Override public void run() { startActivity(startApp); // 跳转后关闭闪屏页,避免按返回键回到该页面,可按需选择是否添加 finish(); } }, 3000); } }
如果你的项目支持Java 8及以上语法,可以用Lambda简化写法:
new Handler().postDelayed(() -> { startActivity(startApp); finish(); }, 3000);
内容的提问来源于stack exchange,提问作者Hillary Dorothea Kristianto
相关产品推荐
相关产品推荐

