2017-12-05 12 views
-2

채팅 응용 프로그램을 개발 중입니다.동적으로 실행할 작업 지정

일단 로그인하면 사용자가 다음에 앱을 시작할 때 기본 페이지로 이동해야합니다. WhatsApp처럼 스플래시 화면이 없습니다. 그래서, 사용자가 다음에 로그인했는지 여부는 어디에서 확인합니까? 사용자가 이미 로그인 한 경우 로그인 화면을 다시 시작하고 싶지 않습니다.

다음에 어떤 활동이 표시되는지 처음 확인할 수있는 서비스 또는 무언가를 시작할 수 있습니까?

+0

사용 환경 설정 관리자는 ... – Omi

+0

예 당신은 당신이 확인해야 후 다음 로그인 화면에서 기본 설정을 사용하여 로그인 한 사용자를 확인해야 더 많은 유효성 검사를 한 다음이 화면에서도 확인한 다음 메뉴 활동으로 리디렉션 한 후 확인하십시오. – InsaneCat

+1

귀하의 활동에 컨텐츠보기가있을 필요는 없습니다. 그래서보기없이 스플래시 활동을 만드십시오. (아마도 'LauncherActivity'라고할까요?) –

답변

0

우리는 서비스를 직접 시작할 수 없으므로 Activity (AppCompatActivity가 아닌)를 확장하고 거기에서 논리를 수행하는 빈 활동을 만들 수 있습니다.

여기서 setContentView를 호출 할 필요가 없습니다. 따라서 레이아웃 파일이 필요하지 않습니다. 매니페스트에 추가하십시오. android:theme="@android:style/Theme.NoDisplay"

+1

감사합니다. 질문에 대한 정확한 대답. –

0

상점 로그인 세부 정보에 공유 환경 설정을 사용하고 사용자가 로그인 한 경우 기본 또는 loginActivity를 확인하십시오. 다른 현명한 인쇄 알림/토스트를 먼저 기록하십시오.

0

항상 로그인 활동을 먼저여십시오. 사용자가 로그인하면 공유 기본 설정에서 사용자의 현재 로그인 세션을 결정하는 고유 토큰을 저장합니다. 그리고 사용자가 로그 아웃 할 때 토큰을 제거하십시오. 사용자가 앱을 열 때마다 로그인 활동을 체크인하고 토큰이 있으면 기본 활동으로 이동하고 그렇지 않으면 로그인 활동을 유지합니다.

0

다음과 같이 사용할 수 있습니다.

final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      if (isLoggedIn-> you can check if user is logged in or not here) 
       load your main activity 
     else 
       load login activity 
     } 
    }, 100); 

이 코드를 주 활동에 배치하십시오.

또는 조건에 따라 다른 레이아웃을로드 할 수 있지만 기본 활동 내에 모든 로그인 활동보기를 넣어야합니다. 사용자가 로그인에 당신이 당신의 로그인 활동이 구현할 수 있습니다 확인

final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      if (isLoggedIn) 
       setContentView(R.layout.activity_main); 
     else 
       setContentView(R.layout.activity_main2); 

     } 
    }, 100);