Android 使用Thread.sleep()跳转到另一个活动

Android 使用Thread.sleep()跳转到另一个活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,我正试图从活动一跳到活动二,但在1秒钟之后。所以我使用了Thread.sleep(1000),之后活动二就出现在前面了。它工作得很好,但问题是我在活动一中给出了一个没有显示的图像背景 public class Activity1 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我正试图从活动一跳到活动二,但在1秒钟之后。所以我使用了Thread.sleep(1000),之后活动二就出现在前面了。它工作得很好,但问题是我在活动一中给出了一个没有显示的图像背景

 public class Activity1 extends Activity {
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {

        Thread.sleep(1000);
        Intent i=new Intent(Activity1.this,Activity2.class );
        startActivity(i);
        } catch (InterruptedException e) {

            e.printStackTrace();
        }

    }

此外,我在“活动二”中包含了一个按钮,该按钮具有跳转到“活动一”的功能,在这种情况下,图像会显示1秒,但在我打开应用程序时不会第一次显示。

直到onCreate()完成后,才会生成用户界面。因此,如果在onCreate()中启动活动2,将永远看不到活动1

相反:

@Override
void onAttachedToWindow()  {
    // start activity 2
}
正如其他人在他们的评论中所说的,您永远不应该在UI线程上使用睡眠。事实上,我希望Java能让睡眠的使用变得更加困难,因为它被使用得太多了,而且常常是一种快速修复方法,避免了正确的解决方案


在这种情况下,您应该使用
AsyncTask
在一秒钟后启动第二个活动。

您可以创建RelativeLayout并显示/隐藏它,并且仅使用一个活动

public class MyView extends RelativeLayout{

 private ImageView view = ....;

 ....
 view.setVisibility(View.VISIBLE);
 ....
 view.setVisibility(View.GONE);

}

据我所知,你想立即开始第二项活动,对吗?我肯定没抓住重点。您是在询问如何在活动2中显示活动1的背景吗?请不要在主应用程序线程上使用
Thread.sleep()
。@MaximShoustin是的,我想在1秒后加载第二个活动,而不加载,然后单击活动1中的事件。@Yashhy,因此请将第二个活动作为主活动启动。在创建之后立即调用第二个活动是不好的做法,“…我希望Java能让使用睡眠变得更加困难…”同意,我个人认为使用
sleep()
基本上是一种黑客行为,无论使用何种语言。
LinearLayout line_main=(LinearLayout)findViewById(R.id.linear_main);主生产线、收进地面资源(R.可抽出、最终生产线)我有这段代码,这里的背景设置应该在几秒钟后消失,以便显示此活动中的主要内容。如何在异步任务中完成它?提前谢谢。