2016-05-31 5 views
0

私はMainactivityが最初に起動され、最初にログインページを起動した場合にユーザーがアプリを初めて使用しているかどうかをチェックします。そうでない場合は、 tabLayout(Homeactivity.java)の2つのタブ。私のHomeactivityが起動されるとすぐに、URLに接続してjsonデータを取得します。アクティビティの起動を処理する

ホームアクティビティの[戻る]ボタンをクリックすると、アプリケーションが終了します。

私が直面している問題は、アプリケーションを最初に開いているかどうかを確認してHomeactivityを開いても、URLに接続できず、最近のアクティビティから削除されていない限りデータを取得できないことです。任意のhelp.followingを理解する問題を理解するHomeActivityの私のコードは、これの任意の問題をバックプレスします。

@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(); 


    } 

と、このユーザは初めての確認やないためのコードが

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

の下に追加は、より良く理解 – Vickyexpert

+0

のためのあなたのコードを表示するいくつかのコードを入力してください –

答えて

0

あなたはのonCreateのチェックでログインをやっているのですか? OnResumeで行います。 これを行う別の方法は、クラスをアプリケーションクラスのonCreateに拡張するクラスを作成し、初めての使用法をチェックします。 「はい」の場合は、ブール値を共有設定として保存します。

バックパック方式では、なぜ仕上げをしていませんか?

0

MainActivityとHomeActivityの両方でstartActivity()の後にfinish()を書き留めておいてください。

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

startActivity(intent); 
    finish(); 
+0

その働きのおかげで... – user2645941

+0

いつでも..あなたは答えを受け入れることができます... – Vickyexpert

+0

こんにちは、一度ログインしHomeActivity fine.butに入ると戻るボタンをクリックすると終了し、 MainActivity(最初にこれが起こっている)に私が2番目または3番目の時間をHomeActivityに直接入力すると問題が発生した場合 – user2645941

0

ようにあなたもSessionManagerのクラスを使用することによってこれを行うことができます。 そして中かログインあなたLoginActivity天候でこれをチェック:

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

はstartactivity後)(仕上げを追加しても、コード

@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(); 
    } 
} 
関連する問題