2012-04-10 5 views
0

Ich habe den folgenden Code:erstellen einen Thread über eine toat Nachricht

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(); 
} 

Ich brauche den Toast zu halten, bis die Person antwortet auf das Telefon. Wie geht das? Ich weiß, ich muss einen Thread erstellen und starten, wenn ich eingehende Nummer habe und den Thread stoppen, wenn die Person antwortet. Wie erreiche ich das?

thx

Antwort

0

wie die Sie interessieren ..

Toast.Length_LONG gives toast for only 3.5 seconds.. 

so .. eine countdowntimer von 3,5 Sekunden erstellen wie this..in Ihre Aktivität des onCreate

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

Mycount Klasse ..

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) { 
    } 
} 
} 

Dies zeigt kontinuierlich Toast, bis Sie den Anruf annehmen .. oder Ihr ankommender Anruf endet wegen Timeout.

+0

wo muss ich den Zähler starten? in welchem ​​Zustand? – user1222905

+0

Ich habe Fehler: Der Status wird in der neuen Klasse nicht erkannt. Meine Basisklasse heißt IncommingCalls.java – user1222905

+0

Was sollte ich für Ihre Aktivität füllen? – user1222905

Verwandte Themen