투케이2K

13. (TWOK/UTIL) [Android/Java] A_Intro - 로딩 인트로 화면 관련 클래스 정리 본문

투케이2K 유틸파일

13. (TWOK/UTIL) [Android/Java] A_Intro - 로딩 인트로 화면 관련 클래스 정리

투케이2K 2022. 3. 22. 15:06

[설 명]

프로그램 : Android / Java

설 명 : 로딩 인트로 화면 관련 클래스 정리

 

[AndroidManifest.xml : 소스 코드]

    <!-- 애플리케이션 설정 -->
    <application
        android:name="com.example.testapp.S_Application"

        android:allowBackup="false"
        android:icon="@mipmap/new_app_icon_1024"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/new_app_icon_1024"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"

        android:usesCleartextTraffic="true"
        android:largeHeap="true"
        android:hardwareAccelerated="true"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:extractNativeLibs="true"
        android:requestLegacyExternalStorage="true"
        tools:replace="android:allowBackup">



        <!-- 1) android:allowBackup="false" : 애플리케이션 삭제 후 재설치시 데이터를 초기화 시킨다 -->
        <!-- 2) android:icon="@mipmap/ic_logo" : 앱 설치 시 표시되는 아이콘을 설정한다 -->
        <!-- 3) android:label="@string/app_name" : 앱 설치 시 표시되는 이름을 설정한다 (string.xml 파일) -->
        <!-- 4) android:roundIcon="@mipmap/ic_logo" : 앱 설치 시 표시되는 아이콘을 설정한다 -->
        <!-- 5) android:supportsRtl="true" : RIGHT to LEFT 레이아웃을 지원한다는의미입니다 -->
        <!-- 6) android:theme="@style/AppTheme" : 기본 애플리케이션 및 액티비티 테마, 액션바 표시 여부를 설정한다 (styles.xml 파일) -->
        <!-- 7) android:usesCleartextTraffic="true" : http 를 사용할 수 있다 (보안 강화로 기본적으로 http 접근을 허용하지 않는다) -->
        <!-- 8) android:largeHeap="true" : 기본 애플리케이션 사용 메모리 용량 늘린다 (메모리 누수 위함) -->
        <!-- 9) android:hardwareAccelerated="true" : 기본 애플리케이션 성능 가속화를 허용한다 (모든 그리기 작업에서 GPU를 사용) -->
        <!-- 10) android:excludeFromRecents = "true" : 최근 앱 작업 목록에 남기지 않는다 -->
        <!-- 11) <uses-library android:name="org.apache.http.legacy" android:required="false"/> : apache http 클라이언트 이슈 방지 [application 내부 독립 구성] -->
        <!-- 12) android:screenOrientation="portrait" 항상 앱 화면을 세로 방향으로 표시하겠다-->
        <!-- 13) android:windowSoftInputMode="adjustPan" : 키보드 활성 시 ui 밀림 현상 방지 -->
        <!-- 14) android:configChanges="keyboardHidden|orientation|screenSize" : 액티비티 화면 가로, 세로 간 전환 시 초기화 방지 [1] -->
        <!-- 15) android:configChanges="orientation|keyboardHidden|keyboard|screenSize" : 액티비티 화면 가로, 세로 간 전환 시 초기화 방지 [2] -->
        <!-- 16) android:extractNativeLibs="true" : 액티비티 화면 가로, 세로 간 전환 시 초기화 방지 [3] -->
        <!-- 17) android:requestLegacyExternalStorage="true" : 외부 저장소 읽기 , 쓰기 위한 권한 허용 -->



        <!-- OS 9.0 이상일때, 해당 부분 추가 -->
        <uses-library
            android:name="org.apache.http.legacy"
            android:required="false" />



        <!-- 로딩 액티비티 -->
        <activity
            android:name=".A_Intro"
            android:exported="true"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustPan"
            android:configChanges="keyboardHidden|orientation|screenSize">


            <!-- 앱 화면 세로 고정 : android:screenOrientation="portrait" -->
            <!-- 키보드 고정 : android:windowSoftInputMode="adjustPan" -->
            <!-- 가상 키보드 상태에 따라 리사이징 : android:windowSoftInputMode="adjustResize" -->
            <!-- 앱 스키마 실행 시 앱 중복 실행 방지 : android:launchMode="singleTask" -->


            <!-- 앱 런처 실행 인텐트 필터 등록 -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>


            <!-- URL 스키마를 사용위해 인텐트 필터 등록 -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <!-- 로그인 연동 : URL 스키마 : 호스트 , 스키마 -->
                <data
                    android:scheme="test"
                    android:host="login" />

                <!-- 일반 호출 : URL 스키마 : 호스트 , 스키마 -->
                <data
                    android:scheme="test"
                    android:host="call" />
            </intent-filter>
        </activity>

    </application>
 

[A_Intro : 소스 코드]

package com.example.testapp;

import androidx.appcompat.app.AppCompatActivity;

import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Window;

import org.json.JSONObject;

import java.util.ArrayList;
import java.util.Arrays;

public class A_Intro extends AppCompatActivity {


    /**
     * TODO [클래스 설명]
     * // -----------------------------------------
     * 1. 인트로 로딩 화면 액티비티
     * 2. 디바이스 고유값 확인 및 저장
     * 3. 애플리케이션 버전 코드, 버전 명 확인 실시
     * 4. URL 스키마 접속 확인 실시
     * 5. 네트워크 연결 상태 체크 실시
     * // -----------------------------------------
     * */





    // TODO [빠른 로직 찾기 : 주석 로직 찾기]
    /**
     * // -----------------------------------------
     * // [SEARCH FAST] : [프리퍼런스 데이터 초기화 실시]
     * // [SEARCH FAST] : [디바이스 고유값 확인 및 저장 실시]
     * // [SEARCH FAST] : [모바일 버전 코드, 버전 명칭 확인 및 저장 실시]
     * // [SEARCH FAST] : [URL 스키마 접속 확인 실시]
     * // [SEARCH FAST] : [노티피케이션 알림 뱃지 지우기 실시]
     * // [SEARCH FAST] : [네트워크 연결 상태 체크]
     * // [SEARCH FAST] : [액티비티 화면 전환 실시]
     * // -----------------------------------------
     */





    // TODO [전역 변수 선언 실시]
    private static final String ACTIVITY_NAME = "A_Intro";





    // TODO [액티비티 생명 주기 상태 체크 메소드]
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            // [타이틀바 없애기 : FEATURE_NO_TITLE]
            requestWindowFeature(Window.FEATURE_NO_TITLE);
        }
        catch (Exception e){
            e.printStackTrace();
        }
        // [액티비티 레이아웃 지정 실시]
        setContentView(R.layout.a_intro_layout);
        Log.i("---","---");
        Log.d("//===========//","================================================");
        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> onCreate() :: 액티비티 수행 실시]");
        Log.d("//===========//","================================================");
        Log.i("---","---");


        // -----------------------------------------
        // TODO [SEARCH FAST] : [프리퍼런스 데이터 초기화 실시]

        S_Preference.introCreateClear(A_Intro.this);
        // -----------------------------------------


        // -----------------------------------------
        // TODO [SEARCH FAST] : [디바이스 고유값 확인 및 저장 실시]

        String deviceId = S_DeviceID.getDeviceID(A_Intro.this);

        if (C_Util.stringNotNull(deviceId) == false){ // [디바이스 값이 저장되지 않은 경우]

            // [디바이스 고유값 저장 : UUID]
            S_DeviceID.setDeviceID(A_Intro.this);
        }
        Log.i("---","---");
        Log.w("//===========//","================================================");
        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> onCreate() :: 저장된 디바이스 고유값 확인]");
        Log.i("","\n"+"[deviceId :: 디바이스 고유 값 :: "+String.valueOf(deviceId)+"]");
        Log.w("//===========//","================================================");
        Log.i("---","---");
        // -----------------------------------------


        // -----------------------------------------
        // TODO [SEARCH FAST] : [모바일 버전 코드, 버전 명칭 확인 및 저장 실시]

        // [모바일 버전 코드 : ex : 1]
        String mobileCode = C_Util.getMobileCode(A_Intro.this);
        S_Preference.setString(getApplication(), S_FinalData.PRE_MOBILE_CODE, mobileCode);


        // [모바일 버전 명칭 : ex : 1.0.0]
        String mobileVersion = C_Util.getMobileVersion(A_Intro.this);
        S_Preference.setString(getApplication(), S_FinalData.PRE_MOBILE_VERSION, mobileVersion);

        Log.i("---","---");
        Log.w("//===========//","================================================");
        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> onCreate() :: 모바일 버전 코드, 버전 명칭 확인]");
        Log.i("","\n"+"[mobileCode :: 모바일 버전 코드 :: "+String.valueOf(mobileCode)+"]");
        Log.i("","\n"+"[mobileVersion :: 모바일 버전 명칭 :: "+String.valueOf(mobileVersion)+"]");
        Log.w("//===========//","================================================");
        Log.i("---","---");
        // -----------------------------------------


        // -----------------------------------------
        // TODO [SEARCH FAST] : [URL 스키마 접속 확인 실시]

        innerUrlScheme();
        // -----------------------------------------


        // -----------------------------------------
        // TODO [SEARCH FAST] : [노티피케이션 알림 뱃지 지우기 실시]

        C_Util.removeBadge(A_Intro.this, 1);
        // -----------------------------------------


        // -----------------------------------------
        // TODO [SEARCH FAST] : [네트워크 연결 상태 체크]
        if (C_StateCheck.getWhatOfNetwork(A_Intro.this)){ // [네트워크가 연결된 경우]

            // [SEARCH FAST] : [액티비티 화면 전환 실시]
            intent_Activity();
        }
        else { // [네트워크가 연결 되지 않은 경우]

            // [팝업창 호출 실시 및 와이파이 설정창 이동]
            C_Ui_View.showAlert(
                    A_Intro.this,
                    1, // [와이파이 설정창 이동 코드]
                    S_FinalData.AL_TITLE,
                    S_FinalData.AL_NET + " [" +String.valueOf(ACTIVITY_NAME)+ "]",
                    S_FinalData.AL_SET,
                    S_FinalData.AL_NO,
                    "");
        }
        // -----------------------------------------


    } // TODO [메인 종료]





    // TODO [SEARCH FAST] : [액티비티 화면 전환 실시]
    public void intent_Activity(){
        try {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {

                    // [SEARCH FAST] : [URL 스키마 접속 확인 실시]
                    String checkNewTask = String.valueOf(S_Preference.getString(getApplication(), S_FinalData.PRE_APP_NEW_TASK));

                    if (C_Util.stringNotNull(checkNewTask) == true){ // [널 값이 아닐 경우 : 새로운 태스크 수행]
                        // -----------------------------------------
                        Log.i("---","---");
                        Log.w("//===========//","================================================");
                        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> intent_Activity() :: 화면 전환 수행 실시]");
                        Log.i("","\n"+"[checkNewTask :: 스키마 접속여부 :: "+String.valueOf(checkNewTask)+"]");
                        Log.i("","\n"+"[전 환 :: [새로운 태스크] :: A_Intro >> A_Main]");
                        Log.w("//===========//","================================================");
                        Log.i("---","---");
                        // -----------------------------------------
                        // [화면 전환 수행]
                        Intent goPage = new Intent(A_Intro.this, A_Main.class);
                        goPage.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                        goPage.setAction(Intent.ACTION_MAIN); // 런쳐 액티비티
                        goPage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 새로운 태스크
                        goPage.addCategory(Intent.CATEGORY_LAUNCHER); // 런쳐 액티비티
                        startActivity(goPage);
                        // -----------------------------------------
                        // [기존 화면 종료]
                        finish();
                        overridePendingTransition(0, 0);
                        // -----------------------------------------
                    }
                    else { // [널 값인 경우 : 일반 수행]
                        // -----------------------------------------
                        Log.i("---","---");
                        Log.d("//===========//","================================================");
                        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> intent_Activity() :: 화면 전환 수행 실시]");
                        Log.i("","\n"+"[checkNewTask :: 스키마 접속여부 :: "+String.valueOf(checkNewTask)+"]");
                        Log.i("","\n"+"[전 환 :: [일반] :: A_Intro >> A_Main]");
                        Log.d("//===========//","================================================");
                        Log.i("---","---");
                        // -----------------------------------------
                        // [화면 전환 수행]
                        Intent goPage = new Intent(A_Intro.this, A_Main.class);
                        goPage.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                        startActivity(goPage);
                        // -----------------------------------------
                        // [기존 화면 종료]
                        finish();
                        overridePendingTransition(0, 0);
                        // -----------------------------------------
                    }
                }
            }, 600); // (작업 예약)
        }
        catch (Exception e){
            //e.printStackTrace();
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> intent_Activity() :: 화면 전환 수행 실시]");
            Log.i("","\n"+"[error :: 에러 :: "+String.valueOf(e.getMessage())+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
        }
    }





    // TODO [모바일 키 이벤트 발생 체크 부분]
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // [모바일 디바이스의 뒤로가기 키 이벤트가 발생한 경우]
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            Log.i("---","---");
            Log.w("//===========//","================================================");
            Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> onKeyDown() :: 백버튼 터치시 뒤로 가기 이벤트 발생]");
            Log.w("//===========//","================================================");
            Log.i("---","---");
        }
        return true;
    }





    // TODO [액티비티 생명 주기 상태 체크 메소드]
    @Override
    public void onResume(){
        super.onResume();
        Log.i("---","---");
        Log.d("//===========//","================================================");
        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> onResume() :: 액티비티 실행 준비]");
        Log.d("//===========//","================================================");
        Log.i("---","---");
    }





    // TODO [액티비티 생명 주기 상태 체크 메소드]
    @Override
    public void onPause(){
        super.onPause();
        Log.i("---","---");
        Log.e("//===========//","================================================");
        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> onPause() :: 액티비티 정지 상태]");
        Log.e("//===========//","================================================");
        Log.i("---","---");
    }





    // TODO [액티비티 생명 주기 상태 체크 메소드]
    @Override
    public void onDestroy(){
        super.onDestroy();
        Log.i("---","---");
        Log.e("//===========//","================================================");
        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> onDestroy() :: 액티비티 종료 상태]");
        Log.e("//===========//","================================================");
        Log.i("---","---");
    }





    // TODO [SEARCH FAST] : [URL 스키마 접속 확인 실시]
    public void innerUrlScheme(){
        try {

            /**
             * // -----------------------------------------
             * [스키마 데이터 형식]
             * // -----------------------------------------
             * 1. 예시 : test://call?
             * // -----------------------------------------
             * 2. 예시 : test://call?name=twok&age=29
             * // -----------------------------------------
             * 3. 스키마 데이터 초기화 :
             *    - [애플리케이션 시작] : S_Preference.proccessCreateClear
             *    - [애플리케이션 종료] : S_Preference.proccessFinishClear
             * // -----------------------------------------
             * */


            // [스키마 접속 여부 확인 실시]
            if(getIntent() != null){

                // [URL 스키마 전달 받은 데이터 확인 실시]
                Uri uri = getIntent().getData();
                if(uri != null){

                    // [스키마 및 호스트 데이터 확인 실시]
                    String total = String.valueOf(uri.toString()); // [스키마 + 호스트 + 데이터 전체]
                    String scheme = String.valueOf(uri.getScheme()); // [스키마]
                    String host = String.valueOf(uri.getHost()); // [호스트]

                    String endCheck = host + "?"; // [마지막 종료 형식 확인 위함 : 스키마 데이터 널 체크]

                    Log.i("---","---");
                    Log.w("//===========//","================================================");
                    Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: URL 스키마 getData() 접속 확인]");
                    Log.i("","\n"+"[접속 여부 :: 스키마 접속 확인]");
                    Log.i("","\n"+"[uri :: "+String.valueOf(total)+"]");
                    Log.w("//===========//","================================================");
                    Log.i("---","---");


                    // TODO [로그인 연동 : 스키마 / 호스트 접속 : login]
                    if (scheme.trim().equals(S_FinalData.SCHEME_IN_TITLE_APP)
                            && host.trim().equals(S_FinalData.SCHEME_IN_HOST_LOGIN)){

                        // [스키마 데이터 체크 수행 실시]
                        try {
                            if (uri.getQueryParameterNames() != null
                                    && uri.getQueryParameterNames().size() > 0
                                    && total.trim().endsWith(endCheck.trim()) == false){ // KEY 값이 하나라도 포함된 경우

                                Log.i("---","---");
                                Log.w("//===========//","================================================");
                                Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: 스키마 접속 분기 처리 실시]");
                                Log.i("","\n"+"--------------------------------");
                                Log.i("","\n"+"[로 직 :: [로그인 연동] 스키마 접속 처리 실시]");
                                Log.i("","\n"+"--------------------------------");
                                Log.i("","\n"+"[스키마 데이터 :: 전달 받은 스키마 데이터 있음]");
                                Log.w("//===========//","================================================");
                                Log.i("---","---");

                                // [배열에 스키마 데이터 담기 수행 실시]
                                ArrayList keyList = new ArrayList(uri.getQueryParameterNames());
                                JSONObject schemeJSON = new JSONObject();
                                for (int i=0; i<keyList.size(); i++){
                                    schemeJSON.put(String.valueOf(keyList.get(i)), uri.getQueryParameter(String.valueOf(keyList.get(i))));
                                }

                                // [프리퍼런스에 [로그인] 스키마 데이터 저장 실시]
                                S_Preference.setString(getApplication(), S_FinalData.PRE_SCHEME_DATA_LOGIN, schemeJSON.toString());
                            }
                            else {
                                Log.i("---","---");
                                Log.e("//===========//","================================================");
                                Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: 스키마 접속 분기 처리 실시]");
                                Log.i("","\n"+"--------------------------------");
                                Log.i("","\n"+"[로 직 :: [로그인 연동] 스키마 접속 처리 실시]");
                                Log.i("","\n"+"--------------------------------");
                                Log.i("","\n"+"[스키마 데이터 :: 전달 받은 스키마 데이터 없음]");
                                Log.e("//===========//","================================================");
                                Log.i("---","---");
                            }
                        }
                        catch (Exception e){
                            e.printStackTrace();
                        }

                        // [로그 출력 실시]
                        Log.i("---","---");
                        Log.w("//===========//","================================================");
                        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: 스키마 접속 분기 처리 실시]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[로 직 :: [로그인 연동] 스키마 접속 처리 실시]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[스키마 :: "+String.valueOf(scheme)+"]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[호스트 :: "+String.valueOf(host)+"]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[KEY [ALL] :: "+String.valueOf(uri.getQueryParameterNames())+"]");
                        //Log.i("","\n"+"[KEY [name] :: "+String.valueOf(uri.getQueryParameter("name"))+"]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[스키마 데이터 [PRE_SCHEME_DATA_LOGIN] :: "+String.valueOf(S_Preference.getString(getApplication(), S_FinalData.PRE_SCHEME_DATA_LOGIN))+"]");
                        Log.w("//===========//","================================================");
                        Log.i("---","---");

                        // [SEARCH FAST] : [URL 스키마 접속 확인 실시]
                        S_Preference.setString(getApplication(), S_FinalData.PRE_APP_NEW_TASK, "TRUE");
                    }
                    // TODO [일반 호출 : 스키마 / 호스트 접속 : call]
                    else {

                        // [스키마 데이터 체크 수행 실시]
                        try {
                            if (uri.getQueryParameterNames() != null
                                    && uri.getQueryParameterNames().size() > 0
                                    && total.trim().endsWith(endCheck.trim()) == false){ // KEY 값이 하나라도 포함된 경우
                                Log.i("---","---");
                                Log.w("//===========//","================================================");
                                Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: 스키마 접속 분기 처리 실시]");
                                Log.i("","\n"+"--------------------------------");
                                Log.i("","\n"+"[로 직 :: [일반] 스키마 접속 처리 실시]");
                                Log.i("","\n"+"--------------------------------");
                                Log.i("","\n"+"[스키마 데이터 :: 전달 받은 스키마 데이터 있음]");
                                Log.w("//===========//","================================================");
                                Log.i("---","---");

                                // [배열에 스키마 데이터 담기 수행 실시]
                                ArrayList keyList = new ArrayList(uri.getQueryParameterNames());
                                JSONObject schemeJSON = new JSONObject();
                                for (int i=0; i<keyList.size(); i++){
                                    schemeJSON.put(String.valueOf(keyList.get(i)), uri.getQueryParameter(String.valueOf(keyList.get(i))));
                                }

                                // [프리퍼런스에 [일반] 스키마 데이터 저장 실시]
                                S_Preference.setString(getApplication(), S_FinalData.PRE_SCHEME_DATA_CALL, schemeJSON.toString());
                            }
                            else {
                                Log.i("---","---");
                                Log.e("//===========//","================================================");
                                Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: 스키마 접속 분기 처리 실시]");
                                Log.i("","\n"+"--------------------------------");
                                Log.i("","\n"+"[로 직 :: [일반] 스키마 접속 처리 실시]");
                                Log.i("","\n"+"--------------------------------");
                                Log.i("","\n"+"[스키마 데이터 :: 전달 받은 스키마 데이터 없음]");
                                Log.e("//===========//","================================================");
                                Log.i("---","---");
                            }
                        }
                        catch (Exception e){
                            e.printStackTrace();
                        }

                        // [로그 출력 실시]
                        Log.i("---","---");
                        Log.w("//===========//","================================================");
                        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: 스키마 접속 분기 처리 실시]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[로 직 :: [일반] 스키마 접속 처리 실시]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[스키마 :: "+String.valueOf(scheme)+"]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[호스트 :: "+String.valueOf(host)+"]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[KEY [ALL] :: "+String.valueOf(uri.getQueryParameterNames())+"]");
                        //Log.i("","\n"+"[KEY [name] :: "+String.valueOf(uri.getQueryParameter("name"))+"]");
                        Log.i("","\n"+"--------------------------------");
                        Log.i("","\n"+"[스키마 데이터 [PRE_SCHEME_DATA_CALL] :: "+String.valueOf(S_Preference.getString(getApplication(), S_FinalData.PRE_SCHEME_DATA_CALL))+"]");
                        Log.w("//===========//","================================================");
                        Log.i("---","---");

                        // [SEARCH FAST] : [URL 스키마 접속 확인 실시]
                        S_Preference.setString(getApplication(), S_FinalData.PRE_APP_NEW_TASK, "TRUE");
                    }
                }
                else {
                    Log.i("---","---");
                    Log.d("//===========//","================================================");
                    Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: URL 스키마 getData() 접속 확인]");
                    Log.i("","\n"+"[접속 여부 :: [1] 일반 실행]");
                    Log.i("","\n"+"[로 직 :: 스키마 데이터 및 접속 상태 플래그 초기화 실시]");
                    Log.d("//===========//","================================================");
                    Log.i("---","---");

                    // [로그인 : 스키마 데이터 초기화]
                    S_Preference.setString(getApplication(), S_FinalData.PRE_SCHEME_DATA_LOGIN, "");

                    // [일반 : 스키마 데이터 초기화]
                    S_Preference.setString(getApplication(), S_FinalData.PRE_SCHEME_DATA_CALL, "");

                    // [SEARCH FAST] : [URL 스키마 접속 확인 실시]
                    S_Preference.setString(getApplication(), S_FinalData.PRE_APP_NEW_TASK, "");
                }
            }
            else {
                Log.i("---","---");
                Log.d("//===========//","================================================");
                Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> innerUrlScheme() :: URL 스키마 getIntent() 접속 없음]");
                Log.i("","\n"+"[접속 여부 :: [2] 일반 실행]");
                Log.i("","\n"+"[로 직 :: 스키마 데이터 및 접속 상태 플래그 초기화 실시]");
                Log.d("//===========//","================================================");
                Log.i("---","---");

                // [로그인 : 스키마 데이터 초기화]
                S_Preference.setString(getApplication(), S_FinalData.PRE_SCHEME_DATA_LOGIN, "");

                // [일반 : 스키마 데이터 초기화]
                S_Preference.setString(getApplication(), S_FinalData.PRE_SCHEME_DATA_CALL, "");

                // [SEARCH FAST] : [URL 스키마 접속 확인 실시]
                S_Preference.setString(getApplication(), S_FinalData.PRE_APP_NEW_TASK, "");
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }


} // TODO [클래스 종료]
 

[a_intro_layout.xml : 소스 코드]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">


    <!--
     [레이아웃 설명]
     1. 사용하는 클래스 : A_Intro
     2. 로딩 화면 인트로 부분에서 사용하는 레이아웃
     -->


    <ImageView
        android:id="@+id/introBgImageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        android:src="@drawable/newintrobg"

        android:scaleType="fitXY"
        android:visibility="visible"
        android:layout_gravity="center"
        android:gravity="center"/>

</LinearLayout>

 

반응형
Comments