textView.EG:30,29,28,27 で 30 秒を表示しているスレッドを実行しています。0 秒まで続きます。したがって、0 秒に達すると、定義されたメッセージで定義された番号にメッセージが送信されます.
私の問題は、途中でスレッドを停止しても、スレッドが停止したことを示していることです;まだメソッドsendTextMessageAlert(); どういうわけか呼び出され、SMSが送信されます..次のことは私のコーディングで行っています:
uiPost = new Handler();
running = true;
timerThread=new Thread(new Runnable() {
int i;
@Override
public void run() {
// TODO Auto-generated method stub
for( i=30;i>=0;i--)
{
if(running)
{
uiPost.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
setTimerText(i);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else
{
timerThread.stop();
end();
//Intent iii=new Intent(Alert.this,FearAlert.class);
//startActivity(iii);
}
}
}//run end
});
timerThread.start();
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//timerThread.stop();
running=false;
// endAlert();
Toast.makeText(getApplicationContext(), "By Button,Monitoring Stopped", 0).show();
}
});
}
public void end(){
vibrator.cancel();
this.locationManager.removeUpdates(this);
if(wakeLock.isHeld())
wakeLock.release();
finish();
}
private void setTimerText(int i)
{
((TextView)findViewById(R.id.TextView03)).setText(String.valueOf(i) + "s");
if(i==0)
{
running=false;
sendTextMessageAlert();
vibrator.cancel();
this.locationManager.removeUpdates(this);
if(wakeLock.isHeld())
wakeLock.release();
finish();
}
}
private void sendTextMessageAlert() {
// TODO Auto-generated method stub
SendSMS task=new SendSMS();
task.startSMS();
}
class SendSMS
{
SharedPreferences myPrefs = getSharedPreferences("FearAlert", 1);
String contactNumber1 = myPrefs.getString("contactNumber1", number);
public void startSMS() {
// TODO Auto-generated method stub
SmsManager.getDefault().sendTextMessage(contactNumber1,
null,
getSharedPreferences("FearAlert", 1).getString("message",getString( R.string.default_emergency_message)+sss),
null, null);
}
Mは、スレッドをチェックして停止するために実行中のブール値を使用しています。解決策..よろしくお願いします...