0

次のコードがあります。

String state= bundle.getString(TelephonyManager.EXTRA_STATE);
if (state.equalsIgnoreCase(TelephonyManager.EXTRA_INCOMING_NUMBER)
{
Toast toast= new Toast(context);
toast.setGravity(Gravity.TOP,0,0);
toast.setDuration(Toast.Length_LONG);
toast.makeText(..).show();
toast.show();
}

その人が電話に出るまで乾杯を続けなければなりません。どうやってするか?着信番号があるときにスレッドを作成して開始し、その人が応答したときにスレッドを停止する必要があることを知っています。これを達成する方法は?

どうも

4

1 に答える 1

0

このようにしてみてください..

 Toast.Length_LONG gives toast for only 3.5 seconds..

だから..このような3.5秒のカウントダウンタイマーを作成します..アクティビティのonCreateで

 String state= bundle.getString(TelephonyManager.EXTRA_STATE);
 MyCount counter;
counter=new MyCount(3500,1000);
counter.start();

マイカウントクラス..

   public class MyCount extends CountDownTimer{
 public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
 @Override
public void onFinish() {
 if (state.equalsIgnoreCase(TelephonyManager.EXTRA_INCOMING_NUMBER){
  Toast toast= new Toast(youractivity.this);
toast.setGravity(Gravity.TOP,0,0);
toast.setDuration(Toast.Length_LONG);
toast.makeText(..).show();
toast.show();
  counter= new MyCount(3500,1000);
 counter.start();
    }

}
 @Override
public void onTick(long millisUntilFinished) {
    }
}
}

これは、通話に応答するか、タイムアウトにより着信通話が終了するまで、トーストが表示され続けます。

于 2012-04-10T15:53:21.483 に答える