2016-07-09 3 views
0

1.Ich möchte die Telefonanruf von App Fragment Seite Button geklickt seine funktioniert Fein.Telefonieren Anruf Fragment Seite Schaltfläche Klicken Sie auf, dann kehren Sie zum gleichen Fragment ohne Neustart der Android-App zurück

2.nach Anruf von der Fragment Page.Its Neustart der APP.

3.I wollen this.Just müssen aufhören gleiche Fragment-Seite öffnen, ohne die Anwendung neu starten

MY-Code:

private class MyPhoneListener extends PhoneStateListener 
{ 

    private boolean onCall = false; 

    @Override 
    public void onCallStateChanged(int state, String incomingNumber) 
    { 

     switch (state) 
     { 
      case TelephonyManager.CALL_STATE_RINGING: 
       // phone ringing... 
       //Toast.makeText(FindStores_tabviewonclick_showpage.this, incomingNumber + " calls you", Toast.LENGTH_SHORT).show(); 
       break; 

      case TelephonyManager.CALL_STATE_OFFHOOK: 
       // one call exists that is dialing, active, or on hold 
       //Toast.makeText(FindStores_tabviewonclick_showpage.this, "on call...", Toast.LENGTH_SHORT).show(); 
       //because user answers the incoming call 
       onCall = true; 
       break; 

      case TelephonyManager.CALL_STATE_IDLE: 
       // in initialization of the class and at the end of phone call 

       // detect flag from CALL_STATE_OFFHOOK 
       if (onCall == true) 
       { 
        //Toast.makeText(Find_stores.this, "restart app after call", Toast.LENGTH_LONG).show(); 

        Log.i("AFTER PHONE Call", "restart app"); 
        // restart our application 
        Intent restart = getActivity().getPackageManager().getLaunchIntentForPackage(getActivity().getPackageName()); 
        restart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        //.restart.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
        startActivity(restart); 



        onCall = false; 
       } 
       break; 
      default: 
       break; 
     } 

    } 
} 

Antwort

1

Ändern der Flagge für Absicht in TelephonyManager.CALL_STATE_IDLE:

Intent restart = getActivity().getPackageManager().getLaunchIntentForPackage(getActivity().getPackageName()); 
       restart.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

       startActivity(restart); 
0

verwenden

getActivity().getFragmentManager().beginTransaction().remove(YourCurrentFragment.this); 
Verwandte Themen