Java 活动没有显示?

Java 活动没有显示?,java,android,android-activity,Java,Android,Android Activity,我正试图建立一个应用程序,作为一个闹钟工作。我在AlarmManager的帮助下实现了所有功能,效果很好。但我有一个问题,当警报响起时,它会启动一个活动,显示带有按钮的屏幕并播放声音。但它只显示一个黑屏,振动+播放声音,然后显示报警屏幕 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.wecker);

我正试图建立一个应用程序,作为一个闹钟工作。我在AlarmManager的帮助下实现了所有功能,效果很好。但我有一个问题,当警报响起时,它会启动一个活动,显示带有按钮的屏幕并播放声音。但它只显示一个黑屏,振动+播放声音,然后显示报警屏幕

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.wecker);
    laufen = true;
    mp = MediaPlayer.create(getApplicationContext(), R.raw.ton); 
    verstanden =(Button)findViewById(R.id.button1);
    verstanden.setOnClickListener(new View.OnClickListener() {public void onClick(View view) 
    {
        finish();
    }
    });
    for (int i=0; i<10;i++)
    {
    mp.start(); 
    Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    v.vibrate(1000);
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    }
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.wecker);
劳芬=真;
mp=MediaPlayer.create(getApplicationContext(),R.raw.ton);
verstanden=(按钮)findViewById(R.id.button1);
verstanden.setOnClickListener(新视图.OnClickListener(){public void onClick(视图)
{
完成();
}
});
对于(inti=0;i
Thread.sleep(1000);
会阻塞您的UI线程,因此会显示黑屏

使用以下命令:

new Thread( new Runnable() {
    public void run()  {
        try { 
        // Add loop to play music and vibrate here

        } catch (InterruptedException ie)  {}
    }
) }.start();

您已将
Thread.sleep(1000);
放在UI线程上的
onCreate()
方法中。活动的UI仅显示在
onResume()之后的
onResume()
因此,在您的睡眠命令完成之前,它不会到达那里。您需要创建一个新的
线程
,并在该
线程
上运行可控震源/睡眠循环。用法如Shivam Verma的回答所示。

线程。睡眠(1000)
当您摆脱此功能时,它是否能按预期工作?还应注意,Thread.sleep()不应在UI线程中使用,只有少数例外情况。@user2950041-哪些例外情况?我想不出任何例外情况。