<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.jatin.notification">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:launchMode="singleInstance" > <!-- Activity A -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".NotificationActivity"
>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity
android:name=".DialogActivity"
android:excludeFromRecents="true"
android:noHistory="true"
android:theme="@style/Theme.AppCompat.Dialog.MinWidth" />
<activity
android:name=".SecondActivity" /><!-- Activity B -->
</application>
</manifest>
단일 인스턴스에 따르면 시스템은 인스턴스를 보유하는 작업에 다른 활동을 실행하지 않습니다. 활동은 항상 그 작업의 단 하나의 유일한 구성원입니다. 이 작업으로 시작된 모든 활동은 별도의 작업으로 열립니다.단일 인스턴스 : 실행 프로그램 활동 시작 모드
하지만 새로운 작업 활동 B가 아닌 활동 A (실행 프로그램 활동) -> 활동 B에서 startActivity (인 텐트 *)를 통해 탐색 할 때 활동 A의 작업 위에 B가옵니다. startActivity (intent *)를 통해 B에서 A로 이동했을 때 A의 단일 인스턴스를 표시하지만
* 아무런 플래그도 추가되지 않았습니다.
새 작업을 만드는 대신 활동 B가 활동 A의 맨 위에 밀어 넣은 이유는 무엇입니까 (활동에 시작 모드가 "singleInstance"였기 때문에)? 활동
목록 :
TaskRecord {14ba4a25 # 18 A = com.example.nischay.notification U = 0 SZ = 2} 실행 # 1 : ActivityRecord {2a37b313 U0의 com.example.nischay. 알림/.SecondActivity의 T18} 실행 # 0 : ActivityRecord {1ab16fa7의 U0의 com.example.nischay.notification/.MainActivity의 T18}
mResumedActivity: ActivityRecord{2a37b313 u0 com.example.nischay.notification/.SecondActivity t18} mLastPausedActivity: ActivityRecord{1ab16fa7 u0 com.example.nischay.notification/.MainActivity t18}
세부 사항 :
장치 : 레노버 k50a40 안드로이드 버전 : 5.0 CompileSdkVersion : 25
코드
Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, REQUEST_CODE_NOTIFY);
매니페스트 게시 –
@DavidWasser 매니페스트를 게시했습니다. 감사. –
시도해보십시오. 전화로 앱을 설치하십시오. 이제 앱을 종료하십시오 (설정 -> 앱 -> YourApp-> 강제 종료). 이제 App-Icon을 클릭하여 HOME 화면에서 응용 프로그램을 시작하십시오. 이제'ActivityB'를 시작하십시오. 이제'adb shell dumpsys activity activities'를 사용하고 목록에서 당신의 작업을 점검하십시오. 1 개의 작업 또는 2 개의 작업이 있습니까? 귀하의 질문에 관련 정보를 게시하십시오. –