2016-05-31 15 views
0

i eine Anwendung habe, in dem Mainactivity zuerst und überprüft, ob der Benutzer gestartet werden, wird mit Hilfe der App beim ersten Mal nicht, wenn es erste Mal ist, startet es die Login-Seite sonst die andere Seite, in der ich habe tabLayout (Homeactivity.java) mit zwei Tabs. Sobald meine Homeactivity gestartet ist, verbindet sie sich mit der URL und ruft die JSON-Daten ab.Handhabung Einführung von Aktivitäten

Wenn Sie auf die Schaltfläche Zurück auf Homeactivity klicken, wird die Anwendung beendet.

Das Problem, dem ich gegenüberstehe, ist, wenn ich die Anwendung öffne das erste Mal öffne oder nicht öffne und die Homeactivity aber seine Verbindung zur URL nicht öffne und die Daten abhole, es sei denn es ist von den letzten activites.I kann nicht entfernen Versteh das Problem, jede Hilfe.Folgend ist mein Code in HomeActivity für das Zurückdrücken irgendeines Problems in diesem.

@Override 
public void onBackPressed() { 


    ImageView image=new ImageView(this); 
    image.setImageResource(android.R.drawable.ic_dialog_alert); 
    new AlertDialog.Builder(this) 
     .setView(image) 
     .setMessage("Are you sure you want to exit the application?") 
     .setCancelable(false) 
     .setIcon(android.R.drawable.ic_dialog_alert) 
     .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(Intent.ACTION_MAIN); 
       intent.addCategory(Intent.CATEGORY_HOME); 
       intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       startActivity(intent); 
      } 
     }) 
     .setNegativeButton("No",null) 
     .show(); 


    } 

und für den Benutzer erste Mal überprüft oder nicht, ist dies der Code

if(prefs.isLoggedIn()){ 
     startActivity(new Intent(MainActivity.this,HomeActivity.class)); 
    } 
    setContentView(R.layout.activity_main); 
+0

zeigen Sie Ihren Code für ein besseres Verständnis – Vickyexpert

+0

Bitte geben Sie einen Code hinzugefügt –

Antwort

0

Sind Sie die in Schach in onCreate angemeldet tun? Mach es in OnResume. Eine andere Möglichkeit, eine Klasse zu erweitern, um die Application-Klasse zu erweitern, in onCreate of Application-Klasse, überprüfen Sie die erstmalige Verwendung. Wenn ja, speichern Sie einen booleschen Wert für gemeinsame Einstellungen.

In Backpressed-Methode, warum machst du nicht gerade fertig?

0

Bitte notieren Sie finish(), nach startActivity() an beiden MainActivity und HomeActivity, dann wird es funktionieren.

Wie

startActivity(new Intent(MainActivity.this,HomeActivity.class)); 
    finish(); 

und

startActivity(intent); 
    finish(); 
+0

seine Arbeits dank Mann ... – user2645941

+0

jederzeit .. Sie die Antwort akzeptieren können ... – Vickyexpert

+0

hallo einmal an Anmeldung und Eintritt in HomeActivity fine.but wenn zurück, um in dem Verlassen Klick auf und wenn ich wieder offen App seine ag ain in MainActivity (nur beim ersten Mal das passiert) wenn ich zweiten oder dritten Mal seine direkte Einstieg in HomeActivity. Was ist das Problem, lassen Sie es mich bitte wissen – user2645941

0

Sie können dies auch tun, indem Sie Sessionmanager Klasse. Und überprüfen Sie dies in Ihrem LoginActivity Wetter angemeldet oder nicht:

session = new SessionManager(getApplicationContext()); 

    if (session.isLoggedIn()) { 
     // User is already logged in. Take him to main activity 
     Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
     startActivity(intent); 
     finish(); 
    } 
0

hinzugefügt finish() nach startactivity und auch unter Code

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 

    prefs=new PreferenceManager(getApplicationContext()); 
    if(prefs.isLoggedIn()){ 
     startActivity(new Intent(MainActivity.this,HomeActivity.class)); 
     finish(); 
    } 
}