Schließen Sie die Aktivität von einer anderen Aktivität durch eine beabsichtigte
Möchte ich öffnen Sie eine Aktivität aus der ersten, und ich will schließen, die erste mit einer Absicht. Ich habe versucht, aber der receiver nicht funktioniert. Und ich habe verschiedene Empfänger in meiner Anwendung, so möchte ich, dass dies Absicht ist, erhalten nur aus FirstReceiver. Wie kann ich es tun?
public class First extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Intent close = new Intent(getApplicationContext(), Close.class);
startActivity(close);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.first, menu);
return true;
}
class FirstReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.e("FirstReceiver","FirstReceiver");
First.this.finish();
}
}
}
- Und dies ist die zweite Klasse.
public class Close extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_close);
Intent myIntent = new Intent();
sendBroadcast(myIntent);
Log.e("onCreate","onCreate");
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.close, menu);
return true;
}
}
Warum gehst du nicht einfach in der Nähe der Ersten Aktivität, wenn Sie beginnen, die zweite? Sie können rufen Sie finish() nach startIntent().
Ich weiß es, aber ich möchte, um es zu schließen.
"Ich würde gerne" tun es auf diese Weise keinen Platz in der Programmierung. Warum etwas tun, viel komplizierter, wenn Sie tun können, die einfache text-Buch Weg?
Ich weiß es, aber ich möchte, um es zu schließen.
"Ich würde gerne" tun es auf diese Weise keinen Platz in der Programmierung. Warum etwas tun, viel komplizierter, wenn Sie tun können, die einfache text-Buch Weg?
InformationsquelleAutor As As | 2013-11-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
dies kann helfen, Sie...
Eine Letzte Sache. Ich möchte etwas zu zeigen, um den Benutzer vor dem schließen der Anwendung, aber in der onreceive kann ich nicht alles zeigen (zugespielt Fenster, ursprünglich war hier Hinzugefügt), weil es zu spät ist. Ich muss dieser aus der Ersten Klasse. Wie kann ich es tun?
Wenn Sie möchten, dass der Nutzer eine
Dialog
vor dem schließen, dann haben die Empfänger das aufrufen einer Methode auf die Aktivität, die zeigt, dass der dialog. Wenn der Benutzer klickt auf "OK" oder was auch immer Tasten, die Sie auf derDialog
können Sie " finish() der activity dann.betrachten Sie die Lösung von David Wasser
Möchten Sie vielleicht, um die Registrierung der BroadcastReceiver
InformationsquelleAutor Gopal Gopi
Denn es ist besser, Verwenden Sie startActivityForResult,onActivityRsult()
und überschreiben
onActivityResult
in IhremActivity
und umzusetzen, wie diese..rufen Sie die
setResult()
in der Nähe von Aktivität, Wann immer Sie wollen, zu schließen, die Ihre mainActivity..InformationsquelleAutor kalyan pvs
Wenn der Benutzer wünscht, beenden Sie alle offenen Aktivitäten, sollten Sie eine Taste drücken, lädt die erste Aktivität, die ausgeführt wird, wenn die app gestartet wird, in meinem Fall "Schließen".
Der obige code löscht alle Aktivitäten, außer für Schließen. Schließen ist die erste Aktivität, die gebracht wird, wenn der Benutzer das Programm ausführt. Dann setzen Sie diesen code innerhalb der Schließen's onCreate, zu signalisieren, wenn es sollte sich selbst zerstören, wenn der "Exit" - Nachricht übergeben wird.
InformationsquelleAutor Avijit