2016-06-29 4 views
2

ich eine Aktie FunktionalitätAndroid Teile Absicht, bleibt in der gleichen Aktivität

 Intent share = new Intent(android.content.Intent.ACTION_SEND); 
     share.setType("text/plain"); 
     share.putExtra(Intent.EXTRA_SUBJECT, "Awesome Keyboard"); 
     share.putExtra(Intent.EXTRA_TEXT, "http://www.codeofaninja.com"); 
     mShare = true; 
     startActivity(Intent.createChooser(share, "Share with")); 

und alles umsetzen will, es ist OK. Aber das Problem, mit dem ich es zu tun habe ist, dass, sobald ich Share-Taste geklickt habe, geht meine Aktivität durch onPause(), onStop(), onDestroy() und natürlich den Benutzer zu MainActivity.

Was kann ich tun, um zu verhindern, dass die App zu MainActivity wechselt?

Ich habe versucht, finish() Methode überschreiben und moveTaskToBack(true); setzen, aber es schreit die App.

+0

"und natürlich den Benutzer zu MainActivity sendet" - was meinst du mit "sendet der Benutzer zu MainActivity"? Ihr Code wird einige Aktivitäten der ACTION_SEND-Implementierung starten, es sei denn, der Benutzer wird aus der Auswahl zurückgesetzt. – CommonsWare

+0

Von welcher Aktivität aus rufen Sie diese Aktivität an Möchten Sie in derselben Aktivität bleiben? –

+0

Ja @AbhijitChakra, ich möchte in der gleichen Aktivität bleiben. MyActivity erweitert BaseActivity (wenn das Ihnen hilft) –

Antwort

0

Ich habe mein Problem gelöst. In meinem speziellen Fall. Die Absicht, von MainActivity zu SecondActivity zu wechseln (von der aus die Share Intent implementiert wurde), hatte dieses Flag 'intent.addFlags (Intent.FLAG_ACTIVITY_NO_HISTORY);' , das war das Problem, dass meine SecondActivty zerstört wurde

1

Um zu vermeiden, auf Destroy anzurufen, können Sie dies unten Code-Schnipsel nennen. Versuchen

FLAG_ACTIVITY_SINGLE_TOP verwenden, wenn Kind Aktivität starten, wie:.

Fenster Fenster = getLocalActivityManager() startActivity (id, intent.addFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP));

+0

Was meinen Sie mit Kindaktivität? –

+0

wenn Sie startActivity aufrufen (Intent.createChooser (share, "Share with")); Diese Aktivität ist eine Kinderaktivität. –

+0

Haben Sie diesen Code ausprobiert? –

Verwandte Themen