2016-06-02 11 views
-1

Ich habe Share-Taste in meiner App und drücken Sie es funktioniert gut. Aber auf der Rückseite drücken von App (wie "WhatsApp", "Google Mail" etc.) hängt meine App mit schwarzem Bildschirm. Die Schaltfläche "Teilen" befindet sich im Layout der Navigationsleiste. Ich debuggte den Code und keine der Methoden werden von der anderen App zurück gedrückt.Keine Methode angerufen zurück drücken von einer anderen App

Aktivität Code (nicht volle Aktivität aber einige relevante Methoden):

public class HomeActivity extends Activity 
      implements View.OnClickListener, AppBarLayout.OnOffsetChangedListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { 

mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
sideMenu = (ListView) findViewById(R.id.left_drawer); 
mSideMenuListAdapter = new SideMenuListAdapter(this, mDrawerLayout); 
sideMenu.setAdapter(mSideMenuListAdapter); 

-Code in meinem Adapter:

holder.share.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
mDrawerLayout.closeDrawer(GravityCompat.START); 
Intent share = new Intent(); 
share.setAction(Intent.ACTION_SEND); 
share.setType("text/plain"); 
share.putExtra(Intent.EXTRA_SUBJECT, "***"); 
share.putExtra(Intent.EXTRA_TEXT, "***")); 
share.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
       Intent.FLAG_ACTIVITY_CLEAR_TOP); 
mContext.startActivity(Intent.createChooser(share, "Share link!")); 
} 
}); 

Bei dem Klicken von Share-Taste unten Methoden in meiner Tätigkeit in der Reihenfolge aufgerufen werden:

@Override 
    public void startActivity(Intent intent) { 
     super.startActivity(intent); 
    } 

@Override 
    public void startActivityForResult(Intent intent, int requestCode) { 
     super.startActivityForResult(intent, requestCode); 
    } 

@Override 
    protected void onPause() { 
     super.onPause(); 
    } 

@Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
    } 

Auf WhatsApp Klick unten Methode wird

genannt
@Override 
    protected void onStop() { 
     super.onStop(); 
    } 

Jetzt, wenn ich zurück Button von WhatsApp drücken, keine der Methode aufgerufen wird. Nur der leere Bildschirm erscheint und App hängt. Im Debug-Modus bekomme ich jedoch mein Bildschirmlayout (welches vor dem Drücken der WhatsApp-Taste war), aber der Bildschirm ist völlig inaktiv. Der einzige Weg, um herauszukommen, ist die App zu töten.

Ich habe versucht Anzahl der Dinge, aber nichts zu sehen, zu arbeiten. Bitte helfen Sie.

+0

Da Sie rufen 'startActivityForResult()', die Methode, die aufgerufen werden soll, wenn Sie zu Ihrem gehen zurück Anwendung ist 'protected void onActivityResult (int requestCode, int resultCode, Intent-Daten)' – NSimon

+0

Er ruft nicht 'startActivityForResult', sondern' startActivity' – Selvin

+0

@NicolasSimon Thanks. Wird überprüft, indem der Unterbrechungspunkt auf onActivityResult gesetzt wird. Selbst diese Methode wird nicht aufgerufen. – Gaurav

Antwort

0

Du bist gerade nicht resultCode in onActivityResult Methode

Verwendung Code unten wird es funktionieren

if(resultCode==Activity.RESULT_OK){ 
//do your task here 
} 
+0

Danke für Ihre Antwort. Ich habe bereits einen Vorschlag erstellt, aber das funktioniert nicht. – Gaurav

+0

@gaurav Sie ändern 'startActivity' in' startActivityForResult' dann wird es für Sie arbeiten. 'MContext.startActivity (Intent.createChooser (share," Share link! "));' –

Verwandte Themen