活动没有显示?

时间:2014-07-08 15:56:07

标签: java android android-activity

我正在尝试构建一个可用作闹钟的应用程序。我在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();
    }
    }
}

}

如何显示活动并同时播放声音?

2 个答案:

答案 0 :(得分:1)

Thread.sleep(1000);阻止你的UI线程,黑屏就会显示出来。

使用此:

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

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

答案 1 :(得分:0)

您已将Thread.sleep(1000);放在UI线程上的onCreate()方法中。您的活动的用户界面仅显示在onResume()之后的onCreate(),因此在您的睡眠命令完成之前它不会到达那里。您需要创建一个新的Thread并在Thread上运行振动器/睡眠周期。用法显示在Shivam Verma的答案中。