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