2010-02-04 15 views
0

Dans mon application, je détecte l'appel sortant lorsqu'un appel est composé à partir du numéroteur ou des contacts.Android - l'icône de numérotation est placée dans les applications récemment utilisées après la fin()

Cela fonctionne bien et je puis pop une boîte de dialogue disant que j'ai détecté l'appel et l'utilisateur appuie sur un bouton pour fermer la boîte de dialogue qui appelle finish() sur cette activité.

Tout fonctionne bien, sauf que lorsque je maintiens la touche d'accueil pour afficher les applications récemment utilisées, l'icône de numérotation est là.

Et quand on clique dessus la boîte de dialogue est ramené au point au premier plan lorsque l'activité de dialogue devrait être mort et disparu et ne pas être en mesure d'être ramené au premier plan.

Voici une image de ce que je veux dire.

Dialer error http://img515.imageshack.us/img515/8505/devicev.png

Alors deux questions se posent, pourquoi l'icône du composeur être placé là et se pourquoi serait-il rappelant mon activité au premier plan?

Voici le code de cette activité qui a un thème de dialogue:

public class CallDialogActivity extends Activity{ 

boolean isRecording; 
AudioManager audio_service; 

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.dialog); 
     audio_service = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 



     Bundle b = this.getIntent().getExtras(); 
     String number = b.getString("com.networks.NUMBER"); 
     String name = b.getString("com.networks.NAME"); 

     TextView tv = (TextView) findViewById(R.id.voip) ; 
     tv.setText(name); 

     Intent service = new Intent(CallAudio.CICERO_CALL_SERVICE); 
     startService(service); 

     final Button stop_Call_Button = (Button) findViewById(R.id.widget35); 


     this.setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); 


     stop_Call_Button.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v){ 


    Intent service = new Intent(CallAudio._CALL_SERVICE); 

    //this is for Android 1.5 (sets speaker going for a few seconds before shutting down) 


    stopService(service); 
    Intent setIntent = new Intent(Intent.ACTION_MAIN); 
     setIntent.addCategory(Intent.CATEGORY_HOME); 
    setIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(setIntent); 
      finish(); 
      isRecording = false; 

    } 

}); 

     final Button speaker_Button = (Button) findViewById(R.id.widget36); 

     speaker_Button.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 

     if(true){ 
     audio_service.setSpeakerphoneOn(false); 
     } 
     else{ 
     audio_service.setSpeakerphoneOn(true); 
     } 

     } 

     }); 

}

@Override protégé vide onResume() { super.onResume();

} 

    @Override 
    protected void onPause() { 

     super.onPause(); 
    } 

    public void onCofigurationChanged(Configuration newConfig) { 

    super.onConfigurationChanged(newConfig); 

    } 

}

Il appelle un service qui utilise audiorecord pour enregistrer à partir du micro et AudioTrack à jouer sur l'écouteur, rien dans le service à faire avec le transmetteur téléphonique.

Quelqu'un a-t-il une idée de ce qui pourrait arriver?

+0

Je pense qu'il peut être le contexte que je passe dans certains de mes méthodes, pourrait devenir le composeur le contexte parce que le dialogue se tiré à partir de là lorsqu'un appel sortant est détecté? –

Répondre

0

Après quelques recherches, il semble la mise en œuvre de HTC du composeur a quelques bugs en elle, l'icône de numérotation ne doit jamais apparaître comme le téléphone doit être la redéfinir.

2

Le menu des applications récemment utilisé ne tient pas compte du fait que l'application a été terminée. Il redémarre juste si c'est le cas. Il montre des choses qui ont été récemment utilisées, pas des choses en cours d'exécution.

+0

Merci Lance, je suis conscient de cela, le problème est avec le propre numéroteur de HTC qu'ils appellent le téléphone est ce qui devrait être dans le menu des applications utilisées et non le composeur, il semble qu'ils n'ont pas mis en œuvre son propre numéroteur correctement –