0

intent我希望在经过预设的不活动时间后通过 a 开始一个新活动。我使用了下面粘贴的代码,但它仍然无法正常工作并且它停留在同一个屏幕上。我知道这不是 android-y 的方式,但我很确定它应该可以工作(这种方式对我来说更有意义)。附带说明一下,我可以使用它来使文​​本视图、按钮或其他对象之类的东西将其可见性从 更改invisiblevisible吗?我环顾四周,没有找到任何答案。提前致谢。

public class Welcome extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.welcome);

    Thread thread = new Thread() {
        @Override
        public void run() {
            try {
                Thread.sleep(10000); 
            } catch (InterruptedException e) {
            }

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    //do stuff
                    Intent myIntent = new Intent(Welcome.this,MainActivity.class);
                    Welcome.this.startActivity(myIntent);
                    overridePendingTransition(R.anim.push_up_in, R.anim.push_up_out);
                }
            });
        }
    };
4

3 回答 3

1

您可以使用处理程序来做到这一点:

 new Handler().postDelayed(<your runnable>, delayInMillis);

对于更新小部件,这样做不是一个好主意。如果延迟不是很大,最好使用AsyncTask 。

于 2013-04-14T07:04:58.453 回答
1

您可以创建一个线程并使其在该时间间隔内休眠。在那之后,您的新意图将开始。

例如:-

Thread splashTread = new Thread() {
                   @Override
                   public void run() {
                       try {
                           int waited = 0;
                           while(_active && (waited < _splashTime)) {
                               sleep(100);
                               if(_active) {
                                   waited += 100;
                               }
                           }
                       } catch(InterruptedException e) {
                           // do nothing
                       } finally {
                           finish();

                          Intent intent = new Intent(First_Intent.this,Second_Intent.class );
                            startActivity(intent);
                       }
                   }
               };
               splashTread.start();


               }
于 2013-04-14T07:14:12.363 回答
0

你可以试试这个...

Timer timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
             // TODO Auto-generated method stub
             Do your thing......

             Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
            startActivity(intent);
        }
    }, 3000);
于 2013-04-14T07:31:20.993 回答