我想在两行代码之间暂停一下,让我解释一下:
- >用户单击一个按钮(实际上是一张卡片),我通过更改此按钮的背景来显示它:
thisbutton.setBackgroundResource(R.drawable.icon);
Run Code Online (Sandbox Code Playgroud)
- >让我们说1秒后,我需要通过改变它的背景来回到按钮的先前状态:
thisbutton.setBackgroundResource(R.drawable.defaultcard);
Run Code Online (Sandbox Code Playgroud)
- >我试图在这两行代码之间暂停线程:
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.也许这是我需要暂停的过程而不是线程?
我也尝试过(但它不起作用):
new Reminder(5);
Run Code Online (Sandbox Code Playgroud)
有了这个:
public class Reminder {
Timer timer;
public Reminder(int seconds) {
timer = new Timer();
timer.schedule(new RemindTask(), seconds*1000);
}
class RemindTask extends TimerTask {
public void run() {
System.out.format("Time's up!%n");
timer.cancel(); //Terminate the timer thread
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何暂停/休眠线程或进程?
假设我想每10秒执行一次操作,并不一定需要更新视图.
问题是:使用带有timertask的计时器是否更好(我的意思是更有效率和更有效),如下所示:
final Handler handler = new Handler();
TimerTask timertask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
<some task>
}
});
}
};
timer = new Timer();
timer.schedule(timertask, 0, 15000);
}
Run Code Online (Sandbox Code Playgroud)
或者只是一个带有postdelayed的处理程序
final Handler handler = new Handler();
final Runnable r = new Runnable()
{
public void run()
{
<some task>
}
};
handler.postDelayed(r, 15000);
Run Code Online (Sandbox Code Playgroud)
如果您能解释何时使用哪种方法以及为什么其中一种方法比另一种方法更有效(如果它实际上是这样),我将不胜感激.
我遇到了问题,我想等待10秒,因为我希望我的应用程序在10秒后启动下面的代码,但不会阻止该人点击应用程序中的任何其他内容(不调用Thread.sleep();).
try {
Log.v("msg", "WAIT CheckFrequencyRun");
Thread.sleep(10000); // giving time to connect to wifi
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//if no network
if(wifiManager.getConnectionInfo().getNetworkId()==-1){
//stop wifi
wifiManager.setWifiEnabled(false);
Log.v("msg", "no connection");
handler.postDelayed(this, checkInterval);
}
//else connection
else{
Log.v("msg", "connection");
onDestroy();
}
Run Code Online (Sandbox Code Playgroud) 让我的程序进入睡眠时遇到一些问题我试图做的是当按下btnStart时firs随机设置图片到12 ImageButtons然后我希望它暂停5秒然后将第一个ImageButton更改为另一张图片
我的代码看起来像这样,现在当按下按钮时它会立即暂停...
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Collections.shuffle(pic);
int time=1;
press=true;
pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.memgreen));
pic.get(1).setImageDrawable(getResources().getDrawable(R.drawable.memgreen));
pic.get(2).setImageDrawable(getResources().getDrawable(R.drawable.memred));
pic.get(3).setImageDrawable(getResources().getDrawable(R.drawable.memred));
pic.get(4).setImageDrawable(getResources().getDrawable(R.drawable.memblue));
pic.get(5).setImageDrawable(getResources().getDrawable(R.drawable.memblue));
pic.get(6).setImageDrawable(getResources().getDrawable(R.drawable.memwhite));
pic.get(7).setImageDrawable(getResources().getDrawable(R.drawable.memwhite));
pic.get(8).setImageDrawable(getResources().getDrawable(R.drawable.mempurple));
pic.get(9).setImageDrawable(getResources().getDrawable(R.drawable.mempurple));
pic.get(10).setImageDrawable(getResources().getDrawable(R.drawable.memyellow));
pic.get(11).setImageDrawable(getResources().getDrawable(R.drawable.memyellow));
try {
Thread.sleep(5000);
pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud) 如何在使用MediaPlayer播放音频5毫秒后调用记录方法.我尝试了类似的东西,但我不知道,我没有找到任何好的例子来结束这个.
while(mp.isPlaying()){
if(record=0){
for(int i=0; i<5millisec; i++){ //how to define 5 millisec or is any better solution
}
startRecord();
record=1;
}
}
mp.stop();
mp.release();
mp=null;
Run Code Online (Sandbox Code Playgroud) 像这样的东西......
setContentView(R.layout.page1);
Thread.sleep(1000);
setContentView(R.layout.page2);
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Android 中开发一个应用程序,其中有一些需要在一段时间后执行的操作。
我可以做些什么来实现这个目标?
我想在按下按钮时更改textview的背景颜色.它应该这样做:首先是白色10毫秒,然后只是常规颜色.是否有某种延迟功能或者我是否需要使用循环或某种类型编写我自己的函数?任何提示非常感谢:)
这一刻我只是用
button.setBackgroundColor(Color.parseColor("#ffa500"));
Run Code Online (Sandbox Code Playgroud) 我希望显示一个toast特定条件是true或false.但是我想这个举杯delay为two seconds前被显示.
我怎样才能做到这一点?
当前if语句:
if (result.equals("true")) {
loginDataBaseAdapter.updateUploadedRecord(sessionId);
Toast.makeText(MathsGameResults.this,
"Data is successfully uploaded.",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(
MathsGameResults.this,
"Error while uploading. Please try again later.",
Toast.LENGTH_LONG).show();
}
}
Run Code Online (Sandbox Code Playgroud)