Android - значок номеронабирателя помещается в недавно использованные приложения после завершения ()

В моем приложении я обнаруживаю исходящий вызов, когда вызов набирается из номеронабирателя или контактов.

Это отлично работает, и затем я открываю диалоговое окно, в котором говорится, что я обнаружил вызов, а затем пользователь нажимает кнопку, чтобы закрыть диалоговое окно, которое вызывает метод finish() для этого действия.

Все работает нормально, за исключением того, что когда я удерживаю клавишу «Домой», чтобы вызвать недавно использованные приложения, появляется значок номеронабирателя.

И когда он нажат, диалоговое окно возвращается в фокус на переднем плане, тогда как диалоговое действие должно быть мертво и исчезло и не может быть возвращено на передний план.

Вот картина того, что я имею в виду.

Ошибка набора номера http://img515.imageshack.us/img515/8505/devicev.png< /а>

Таким образом, возникает два вопроса: почему значок номеронабирателя помещается туда и почему он вызывает мою активность на передний план?

Вот код для этого действия, у которого есть тема диалога:

 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 protected void onResume() { super.onResume();

  }

  @Override
  protected void onPause() {

      super.onPause();
  }

  public void onCofigurationChanged(Configuration newConfig) { 

   super.onConfigurationChanged(newConfig); 

   }

}

Он вызывает службу, которая использует AudioRecord для записи с микрофона и AudioTrack для воспроизведения через наушник, в службе нет ничего общего с номеронабирателем.

Кто-нибудь знает, почему это может происходить?


person Donal Rafferty    schedule 04.02.2010    source источник
comment
Я думаю, что это может быть контекст, который я передаю некоторым из моих методов, может ли номеронабиратель стать контекстом, потому что оттуда запускается диалоговое окно при обнаружении исходящего вызова?   -  person Donal Rafferty    schedule 05.02.2010


Ответы (2)


Меню недавно использованных приложений не имеет значения, завершено ли приложение. Он просто перезапускает его, если это так. Он показывает то, что недавно использовалось, а не то, что работает в данный момент.

person Lance Nanek    schedule 06.02.2010
comment
Спасибо, Лэнс, я знаю об этом, проблема в собственном номеронабирателе HTC, который они называют Телефоном, который должен быть в меню используемых приложений, а не в номеронабирателе, похоже, они не реализовали собственный номеронабиратель должным образом. - person Donal Rafferty; 08.02.2010

После некоторых исследований выяснилось, что в реализации номеронабирателя HTC есть некоторые ошибки, значок номеронабирателя никогда не должен появляться, поскольку телефон должен переопределять его.

person Donal Rafferty    schedule 09.02.2010