我正在制作一款需要运行的Android应用程序。我正在从runnable开始一个新的活动。新的活动出现并且工作正常。问题是,当调用启动活动时,它非常慢。当我想要它立即开始活动时,需要整整5秒钟。
Boolean handlerrun=true;
Intent intent= new Intent(this,newactivity.class);
int somevalue=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameactivity);
handler=new Handler();
final Runnable r = new Runnable()
{
public void run()
{
if(handlerrun){somevalue++;}
if(somevalue>500){
handlerrun=false;
startActivity(intent);
finish();
}
handler.postDelayed(this, 1);}
}
};
handler.postDelayed(r, 1);
}
当somevalue大于500时,活动开始。为了阻止处理程序增加somevalue的值,我使用布尔处理程序运行,它只在运行处理程序为true时运行。当somevalue大于500时,handlerrun = false,因此处理程序不会增加该值。我尝试使用handler.removeCallbacksandMessages()方法,但它没有工作。 Logcat没有给我任何错误。非常感谢。
答案 0 :(得分:1)
您可以尝试这样的事情:
@Override
protected void onResume() {
super.onResume();
if(done){
return;
}
done = true;
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(getApplicationContext(), YourActivity.class));
finish();
overridePendingTransition(0, 0);
}
}, 5000);
}
这将在大约5秒后启动 YourActivity 。
希望它有所帮助。