android 吐司暂停了但是程序没有崩,由于Android吐司消息在错误的线程中启动的错误...

嗨我有一些问题,以显示吐司消息,实际上是程序崩溃说,我想显示吐司在错误的线程或类似的东西。由于Android吐司消息在错误的线程中启动的错误

我一直在阅读有关该主题的一些其他问题,我认为soultions是像使用的处理程序与UI到comunicate,但不知道怎么办呢,能和我的例子/教程的任何一个份额如何从代码的任何部分启动敬酒信息?

比如我想是这样的:有问题的线**之间]

public class SamplesTiming extends Activity {

...

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_samples_timing);

...

}

private void setButtonHandlers() {

((Button)findViewById(R.id.btnStart)).setOnClickListener(btnClick);

((Button)findViewById(R.id.btnStop)).setOnClickListener(btnClick);

}

private void enableButton(int id,boolean isEnable){

((Button)findViewById(id)).setEnabled(isEnable);

}

private void enableButtons(boolean isRecording) {

enableButton(R.id.btnStart,!isRecording);

enableButton(R.id.btnStop,isRecording);

}

private void startRecording(){

...

recordingThread = new Thread(new Runnable() {

//@Override

public void run() {

writeAudioDataToFile();

}

},"AudioRecorder Thread");

recordingThread.start();

}

private void writeAudioDataToFile(){

...

while(isRecording){

...

read = recorder.read(data, 0, bufferSize);

if(condition) **Toast.makeText(getApplicationContext(),

"it happen", Toast.LENGTH_LONG).show();**

...

}

}

private void stopRecording(){

if(null != recorder){

isRecording = false;

recorder.stop();

recorder.release();

recorder = null;

recordingThread = null;

}

}

private View.OnClickListener btnClick = new View.OnClickListener() {

// @Override

public void onClick(View v) {

switch(v.getId()){

case R.id.btnStart:{

enableButtons(true);

startRecording();

break;

}

case R.id.btnStop:{

enableButtons(false);

stopRecording();

break;

}

}

}

};

}

非常感谢您的宝贵时间

+0

“或类似的东西”是一个非常特殊的例外,你会通过简单的google搜索找到解决方案“类似的事情”(第一个答案) –

+0

如果你是一个真正有用的成员,希望你赢得奖励给这里最好笑的成员。祝你好运;) –

+0

只是想指出你的问题没有包含很多信息来帮助解决问题。还试图说,我不明白为什么你会问“这样的事情”,而不是发布完整的错误。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值