2011-06-10 3 views
4

내 앱에 로그인 화면을 구현하고 모범 사례를 찾고 싶습니다. 이 코드 가정 :로그인 (인증) 화면을 구현하는 가장 좋은 방법은 무엇입니까?

public class LoginActivity extends Activity { 
    public void onCreate(Bundle icicle){ 
     super.onCreate(icicle); 
     setContentView(R.layout.activity_login); 
     Button btnLogin=(Button)findViewById(R.id.btnLogin); 
     btnLogin.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       finish(); 
       startActivity(new Intent(getApplicationContext(), MainActivity.class)); 
      } 
     }); 
    } 
} 

public class MainActivity extends Activity { 
    public void onCreate(Bundle icicle){ 
     super.onCreate(icicle); 
     setContentView(R.layout.activity_main); 
     Button btnLogout=(Button)findViewById(R.id.btnLogout); 
     btnLogout.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       finish(); 
       startActivity(new Intent(getApplicationContext(), LoginActivity.class)); 
      } 
     }); 
    } 
} 

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 

     <activity android:name=".LoginActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".MainActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

최초의 응용 프로그램 실행을 위해 작동합니다, 난 비밀 번호를 기억합니다. 하지만 다음에 앱 스토어에 비밀번호가 이미 존재하는 경우 LoginActivity를 표시하고 싶지 않습니다. 그래서, 내가 가진 유일한 해결책은 :

public class LoginActivity extends Activity { 
    public void onCreate(Bundle icicle){ 
     super.onCreate(icicle); 
     setContentView(R.layout.activity_login); 
     Button btnLogin=(Button)findViewById(R.id.btnLogin); 
     btnLogin.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       finish(); 
       startActivity(new Intent(getApplicationContext(), MainActivity.class)); 
      } 
     }); 
     //consider that passwodExists() looks for credentials 
     if(passwodExists()){ 
      finish(); 
      startActivity(new Intent(getApplicationContext(), MainActivity.class)); 
     } 
    } 
} 

이게 맞나요?

  • 이러한 문제에 대해 무엇을 사용 하시겠습니까?
  • onCreate()에서 Activity 또는 show dialog를 시작하는 것이 안전합니까?

답변

2

메인 레이아웃 onResume()의 뒤로 버튼을 고려하고 유효한 로그인이없는 경우 응용 프로그램을 닫는 것이 좋다고 생각합니다.

이 작업을 수행 할 때 로그인 활동이나 주 활동으로 이동하기로 결정한 스플래시 화면 유형 활동을 만들었으며 스플래시 화면 활동이 뒤로 작업 내역의 일부가 아닌지 확인했습니다. 그런 다음 로그인 활동에서 뒤로 버튼을 누르면 응용 프로그램이 종료됩니다.

+0

뒤로 버튼에 대해 무엇을 의미합니까? –

+0

글쎄, 누군가가 자신의 장치에서 뒤로 버튼을 사용한다면, (기본적으로) 이전 활동 인 MainActivity로 이동하게됩니다. http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html –

+0

다음 활동을 시작하기 전에 현재 활동에서 finish()를 호출하므로 '활동 스택'에 없습니다. 나는 모든 것이 괜찮다고 생각 했나, 아니면 뭔가 빠졌어? –

관련 문제