-
[안드로이드] 안드로이드 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 > (사용 예제)
123456789101112131415161718192021222324252627<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"><TextViewandroid: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"/><Buttonandroid: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 > (사용 예제)
1234567891011121314151617181920public class MainActivity extends AppCompatActivity {Button btn1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn1 = findViewById(R.id.btn1);btn1.setOnClickListener(new View.OnClickListener() {@Overridepublic 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/ -
'안드로이드(java) > task 관련' 카테고리의 다른 글
[안드로이드] onNewIntent(), onSaveInstanceState() 메서드 (0) 2018.11.24