Android-在Handler / runnable中启动新的Activity非常慢

时间:2014-10-19 17:31:08

标签: java android android-activity runnable

我正在制作一款需要运行的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没有给我任何错误。非常感谢。

1 个答案:

答案 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

希望它有所帮助。