哪个是Android应用程序的活动更改的最佳方法

时间:2013-08-13 09:44:33

标签: android

我有两项活动。我想在固定时间从A到B。去B后我想回到A定时。我已经搜索过但无法理解从哪里开始。我应该使用threadtimer还是handler

我想了解以下代码:

Handler activityChanger = new Handler();  
activityChanger.postDelayed(new Runnable(){
   startActivity(new Intent(this,about.class));
}, 10000);

如果有人能给我一个例子,这将是一个很大的帮助。 我在下面添加了代码。

 Thread switchToActivityB = new Thread(new Runnable() {              
 @Override 
          public void run() {
            try {
              Thread.sleep(3000);
              Intent intent = new Intent(this, About.class);
              startActivity(intent);
              finish();
            } catch (Exception e) {

            }
          }
        });
        switchToActivityB.start();

4 个答案:

答案 0 :(得分:1)

放置代码的地方取决于您的想法。例如,如果你想在每次进入活动A时这样做(这意味着当你去B然后按回去,经过一段固定的时间它将再次回到活动B),你应该把代码在onResume()方法中。

如果您只想这样做一次,只需将其放入onCreate()方法

即可

答案 1 :(得分:0)

您可以将上述代码放在第一个活动的onResume()中。类似地,在“about.java”onResume()中对活动名称进行少量修改时使用相同的代码。

答案 2 :(得分:0)

对于您所描述的内容,您应该使用onStartonResume方法。如果将它放在onCreate上,它将只运行一次,因为您的活动不会被破坏。

您可以使用您描述的任何选项。 StartActivity Is a safe method, so you can call it from outside your UI Thread.

答案 3 :(得分:0)

Thread switchToActivityB = new Thread(new Runnable() {
  @Override
  public void run() {
    try {
      Thread.sleep(3000); // The fixed time in milli seconds
      Intent intent = new Intent(activityA.this, activityB.class);
      startActivity(intent);
      finish();
    } catch (Exception e) {
      // Catch Exception
    }
  }
});
switchToActivityB.start();

在onCreate()方法

中将此代码添加到活动A.

在onCreate()方法

中的活动B中执行相同的操作
Thread switchToActivityA = new Thread(new Runnable() {
  @Override
  public void run() {
    try {
      Thread.sleep(3000); // The fixed time in milli seconds
      Intent intent = new Intent(activityB.this, activityA.class);
      startActivity(intent);
      finish();
    } catch (Exception e) {
      // Catch Exception
    }
  }
});
switchToActivityA.start();