1

我有两个活动。我想以固定的时间从 A 到 B。去B后,我想在固定的时间回到A。我已经搜索过了,但不知道从哪里开始。我应该使用threadortimer还是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

4 回答 4

1

放置代码的地方取决于你想怎么做。例如,如果你想每次在活动 A 中都这样做(这意味着当你去 B 然后按返回,固定时间后它会再次回到活动 B),你应该把代码在onResume()方法。

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

于 2013-08-13T09:48:17.913 回答
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();

将此代码添加到活动 A,在 onCreate() 方法中

在活动 B 中的 onCreate() 方法中执行相同操作

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();
于 2013-08-13T09:51:41.803 回答
0

您可以将上述代码放在第一个活动的 onResume() 中。同样,在“about.java”onResume() 中放入相同的代码,对活动名称稍作修改。

于 2013-08-13T09:50:58.170 回答
0

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

您可以使用您描述的任何选项。StartActivity 是一种安全的方法,因此您可以从 UI 线程外部调用它。

于 2013-08-13T09:51:04.103 回答