ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드] 안드로이드 task 정리.
    안드로이드(java)/task 관련 2018. 10. 25. 09:33

    - 화면이 켜진 상태를 유지하는 플래그 -

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);


    Window window = activity.getWindow();
    window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    이런식으로 사용합니다.



    - 인텐트에 flag 적용하기 -


    < activity_main.xml > (사용 예제)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <RelativeLayout 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"
        tools:context=".MainActivity">
     
        <TextView
            android:id="@+id/tv_main"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="main 엑티비티임"
            android:textSize="30sp"
            android:textColor="#000"
            android:layout_centerInParent="true"/>
     
        <Button
            android:id="@+id/btn1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="second activity로 이동"
            android:background="@color/colorPrimary"
            android:layout_below="@id/tv_main"
            android:layout_marginLeft="100dp"
            android:layout_marginRight="100dp"/>
     
    </RelativeLayout>
    cs



    < MainActivity.class > (사용 예제)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class MainActivity extends AppCompatActivity {
        Button btn1;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            btn1 = findViewById(R.id.btn1);
     
            btn1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(MainActivity.this, ActivitySecond.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(intent);
                }
            });
        }
    }
    cs





    새로운 activity를 띄우면서 기존에 담겨있던 task들을 전부 제거하고 싶다면

    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

    이런식으로 사용하시면 됩니다.




    그 외에 다른 flag들은 아래와 같습니다.

    적용방법은 비슷합니다.


    FLAG_GRANT_READ_URI_PERMISSION : URI 읽기 권한 플래그

    FLAG_GRANT_WRITE_URI_PERMISSION : URI 쓰기 권한 플래그

    FLAG_DEBUG_LOG_RESOLUTION : 디버깅 정보를 로그로 출력해주는 플래그

    FLAG_FROM_BACKGROUND : 백그라운드 동작임을 알려주는 플래그

    FLAG_ACTIVITY_BROUGHT_TO_FRONT : 태스크에 있는 액티비티가 다시 실행되었을 때 시스템이 설정하는 플래그

    FLAG_ACTIVITY_CLEAR_TASK : 태스크를 초기화하는 플래그

    FLAG_ACTIVITY_CLEAR_TOP : 실행할 액티비티가 태스크에 이미 있다면 태스크에 있는 동일한 액티비티부터 최상단의 액티비티까지 모두 제거하고 새로운 액티비티를 실행하는 플래그

    FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET : 태스크가 재시작할 때, 액티비티를 종료할 수 있도록 액티비티에 표시를 하는 플래그

    FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS : '최근 실행 액티비티 목록'에 보이지 않도록 하는 플래그

    FLAG_ACTIVITY_FORWARD_RESULT : 액티비티 처리 결과를 전달할 수 있는 플래그

    FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY : '최근 실행 액티비티 목록'에서 실행될 경우 시스템에 의해 설정되는 플래그

    FLAG_ACTIVITY_MULTIPLE_TASK : 액티비티를 항상 새로운 태스크에서 실행하는 플래그

    FLAG_ACTIVITY_NEW_TASK : 실행한 액티비티와 관련된 태스크가 존재하면 동일한 태스크 내에서 실행하고 그렇지 않으면 새로운 태스크에서 액티비티를 실행하는 플래그

    FLAG_ACTIVITY_NO_ANIMATION : 액티비티 전환시 애니메이션을 사용하지 않게 하는 플래그

    FLAG_ACTIVITY_NO_HISTORY : 실행된 액티비티를 태스크 스택에서 관리하지 않도록 해주는 플래그

    FLAG_ACTIVITY_RESET_TASK_IF_NEEDED : 사용자가 홈 스크린이나 "최근 실행 액티비티 목록"에서 태스크를 시작할 경우 시스템에 의해 설정되는 플래그

    FLAG_ACTIVITY_REORDER_TO_FRONT : 실행된 액티비티가 태스크에 이미 존재하는 액티비티라면 새로 실행하지 않고 태스크에 있는 액티비티를 스택 최상단으로 옮기는 플래그

    FLAG_ACTIVITY_SINGLE_TOP : 실행할 액티비티가 태스크 스택 최상단에 이미 있다면 액티비티를 다시 실행하지 않는 플래그

    FLAG_RECEIVER_REGISTERED_ONLY : 등록된 리시버만 브로드캐스트를 받을 수 있게 해주는 플래그


    - FLAG 출처 : https://kairo96.gitbooks.io/android/content/ -

    댓글

Designed by Tistory.