최근 화면(개요 화면이라고도 함), 최근 작업 최근 앱 목록 화면은 최근 액세스한 사용자 목록을 보여주는 시스템 수준의 UI입니다. 활동과 할 일. 사용자는 목록을 탐색하고, 작업을 선택하여 다시 시작하거나 목록에서 할 일을 스와이프하여 목록에서 삭제할 수 있습니다.
최근 화면은 문서 중심 모델 - Android 5.0 (API 레벨 21)을 말하며, 여기서 다른 문서가 포함된 동일한 활동이 최근 화면 예를 들어 Google Drive에 각 사용자의 여러 Google 문서를 확인할 수 있습니다 각 문서는 최근 탭에 할 일로 표시됩니다. 화면:
<ph type="x-smartling-placeholder">또 다른 일반적인 예는 사용자가 공유 > Gmail Gmail 앱의 편지쓰기 화면이 나타납니다. 화면 왼쪽 상단의 이때 최근 버튼을 누르면 별도로 실행되는 Chrome과 Gmail이 표시됩니다. 작업:
<ph type="x-smartling-placeholder">일반적으로는 시스템이 작업과 활동의 방식을 정의하도록 합니다. 표시됩니다. 이 항목은 수정할 필요가 없습니다. 있습니다. 그러나 최근 화면
이
ActivityManager.AppTask
드림
클래스를 통해 작업을 관리하고
Intent
클래스를 사용하면
최근 화면에서 활동이 추가되거나 삭제됨 또한
<activity>
속성을 사용하면
매니페스트의 동작을 확인하세요
최근 화면에 작업 추가
Intent
클래스의 플래그를 사용하여
할 일 추가를 사용하면 문서를 여는 시기와 방법을 더 효과적으로 제어할 수 있으며
다시 열 수 있습니다. 이
<activity>
속성에 대해 다음과 같은 작업을 수행할 수 있습니다.
항상 새 작업에서 문서를 열거나 기존 작업
태스크의 예입니다.
인텐트 플래그를 사용하여 작업 추가
활동에 대해 새 문서를 만들 때
startActivity()
드림
메서드를 호출하고 활동을 시작하는 인텐트를 이 메서드에 전달합니다. 논리 문자를 삽입하기 위해
시스템이 사용자의 활동을 최근 기록의 새 작업으로 취급하게 합니다.
화면의 오른쪽 상단에 있는
FLAG_ACTIVITY_NEW_DOCUMENT
드림
addFlags()
의 플래그
API를 호출하는 Intent
의 메서드에서
있습니다.
FLAG_ACTIVITY_MULTIPLE_TASK
를 설정하는 경우
플래그를 지정하면 시스템은 항상
타겟 활동을 루트로 사용할 수 있습니다. 이 설정을 사용하면 동일한 문서를
2개 이상의 작업에서 열었습니다. 다음 코드는 기본
활동은 다음을 수행합니다.
Kotlin
fun createNewDocument(view: View) { val newDocumentIntent = newDocumentIntent() if (useMultipleTasks) { newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK) } startActivity(newDocumentIntent) } private fun newDocumentIntent(): Intent = Intent(this, NewDocumentActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT or android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS) putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, documentCounter++) }
자바
public void createNewDocument(View view) { final Intent newDocumentIntent = newDocumentIntent(); if (useMultipleTasks) { newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); } startActivity(newDocumentIntent); } private Intent newDocumentIntent() { boolean useMultipleTasks = checkbox.isChecked(); final Intent newDocumentIntent = new Intent(this, NewDocumentActivity.class); newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); newDocumentIntent.putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, documentCounter++); return newDocumentIntent; } }
기본 활동이 새 활동을 실행하면 시스템은
그 인텐트가 인텐트 구성요소 이름과 일치하고
인텐트 데이터를 정의합니다. 작업을 찾을 수 없거나
FLAG_ACTIVITY_MULTIPLE_TASK
플래그를 사용하면 활동을 루트로 하여 새 작업이 생성됩니다.
시스템이 인텐트 구성 요소 이름과 일치하는 인텐트가 있는 작업을 찾은 경우
해당 작업을 프런트로 가져오고 새 인텐트를
onNewIntent()
새 활동이 인텐트를 가져오고 최근 항목에 새 문서를 만듭니다.
화면에 표시되어야 합니다.
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_new_document) documentCount = intent .getIntExtra(DocumentCentricActivity.KEY_EXTRA_NEW_DOCUMENT_COUNTER, 0) documentCounterTextView = findViewById(R.id.hello_new_document_text_view) setDocumentCounterText(R.string.hello_new_document_counter) } override fun onNewIntent(newIntent: Intent) { super.onNewIntent(newIntent) /* If FLAG_ACTIVITY_MULTIPLE_TASK has not been used, this Activity will be reused. */ setDocumentCounterText(R.string.reusing_document_counter) }
자바
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_document); documentCount = getIntent() .getIntExtra(DocumentCentricActivity.KEY_EXTRA_NEW_DOCUMENT_COUNTER, 0); documentCounterTextView = (TextView) findViewById( R.id.hello_new_document_text_view); setDocumentCounterText(R.string.hello_new_document_counter); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); /* If FLAG_ACTIVITY_MULTIPLE_TASK has not been used, this activity is reused to create a new document. */ setDocumentCounterText(R.string.reusing_document_counter); }
활동 속성을 사용하여 작업 추가
또한 활동은 매니페스트에서 항상 새 작업으로 시작하도록 지정할 수 있습니다.
<activity>
메서드를 사용하여
속성 android:documentLaunchMode
.
이 속성에는 사용자가
애플리케이션이 포함된 문서를 엽니다.
intoExisting
- 활동이 문서에 기존 작업을 다시 사용합니다. 이 방법은
FLAG_ACTIVITY_NEW_DOCUMENT
드림 플래그를 설정하지 않고FLAG_ACTIVITY_MULTIPLE_TASK
플래그의 내용을 참조하세요. 인텐트 플래그를 사용하여 작업 추가 섹션 always
- 문서가 다음에 있더라도 활동이 문서에 대해 새 작업을 생성합니다.
이미 열려 있습니다. 이 값을 사용하는 것은
FLAG_ACTIVITY_NEW_DOCUMENT
및FLAG_ACTIVITY_MULTIPLE_TASK
플래그. none
- 활동이 문서의 새 작업을 생성하지 않습니다. 최근 항목 화면은 활동을 기본적으로 처리하는 것처럼 처리합니다. 하나의 작업을 표시합니다. 사용자가 마지막으로 호출한 활동부터 재개됩니다.
never
- 활동이 문서의 새 작업을 생성하지 않습니다. 이 값 설정하기
포드의 동작을 재정의하여
FLAG_ACTIVITY_NEW_DOCUMENT
및FLAG_ACTIVITY_MULTIPLE_TASK
있습니다. 둘 중 하나가 인텐트와 최근 화면에 설정되어 있는 경우 앱에 대해 단일 작업을 표시하고 앱이 어떤 활동부터 재개하든 사용자를 마지막으로 호출했습니다. 를 통해 개인정보처리방침을 정의할 수 있습니다.
할 일 목록 삭제
기본적으로 문서 작업은 최근 화면에서 자동으로 종료됩니다.
자동으로 전달됩니다. 이 동작을 재정의하려면
ActivityManager.AppTask
드림
클래스, Intent
플래그 또는
<activity>
속성
다음을 설정하여 최근 화면에서 언제든지 할 일을 완전히 제외할 수 있습니다.
<activity>
속성
android:excludeFromRecents
true
님에게 보냅니다.
앱이
최근 화면
<activity>
속성
android:maxRecents
을(를)
정수 값입니다. 최대 작업 수에 도달하면
최근 사용 화면에서 가장 오래전에 사용한 작업이 사라집니다. 기본값은 16이며
최댓값은 50입니다 (메모리가 부족한 기기에서는 25). 더 낮은 값
유효하지 않습니다.
AppTask 클래스를 사용하여 작업 삭제
최근 화면에서 새 작업을 생성하는 활동에서는 다음을 수행할 수 있습니다.
작업을 제거하는 시점을 지정하고 이와 관련된 모든 활동을
호출
finishAndRemoveTask()
드림
메서드를 사용하여 축소하도록 요청합니다.
Kotlin
fun onRemoveFromOverview(view: View) { // It is good pratice to remove a document from the overview stack if not needed anymore. finishAndRemoveTask() }
자바
public void onRemoveFromRecents(View view) { // The document is no longer needed; remove its task. finishAndRemoveTask(); }
완료된 작업 유지
할 일을 최근 화면에 보관하려는 경우(활동이
완료되면
FLAG_ACTIVITY_RETAIN_IN_RECENTS
드림
플래그
addFlags()
메서드를
인텐트를 실행합니다.
Kotlin
private fun newDocumentIntent() = Intent(this, NewDocumentActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT or android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS) putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, getAndIncrement()) }
자바
private Intent newDocumentIntent() { final Intent newDocumentIntent = new Intent(this, NewDocumentActivity.class); newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS); newDocumentIntent.putExtra(KEY_EXTRA_NEW_DOCUMENT_COUNTER, getAndIncrement()); return newDocumentIntent; }
동일한 효과를 얻으려면
<activity>
속성
android:autoRemoveFromRecents
false
님에게 전송합니다. 기본값은 문서 활동의 경우 true
, 다음의 경우 false
입니다.
도움이 됩니다. 이 속성을 사용하면
FLAG_ACTIVITY_RETAIN_IN_RECENTS
플래그.
최근 URL 공유 사용 설정하기 (Pixel만 해당)
Android 12 이상을 실행하는 Pixel 기기에서 사용자는 링크를 공유할 수 있습니다. '최근' 화면에서 최근에 본 웹 콘텐츠로 바로 이동할 수 있습니다. 방문 후 사용자가 '최근 사용' 화면으로 스와이프하면 클릭한 다음 링크 버튼을 탭하여 URL입니다.
<ph type="x-smartling-placeholder">모든 앱은 웹 UI를 제공하여 사용자가 최근 항목 연결을 사용 설정할 수 있습니다.
재정의
onProvideAssistContent()
님,
다음과 같습니다.
Kotlin
class MainActivity : AppCompatActivity() { protected fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun onProvideAssistContent(outContent: AssistContent) { super.onProvideAssistContent(outContent) outContent.setWebUri(Uri.parse("https://example.com/myCurrentPage")) } }
Java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onProvideAssistContent(AssistContent outContent) { super.onProvideAssistContent(outContent); outContent.setWebUri(Uri.parse("https://example.com/myCurrentPage")); } }