2016-11-19 5 views
2

내 신청서에는 MainActivitySecondActivity의 두 가지 활동이 있습니다. 주요 활동은 android:launchMode="singleInstance"으로 지정되며 오리엔테이션은 항상 portrait입니다. 두 번째 활동은 항상 landscape 오리엔테이션입니다. 동일한 앱의 작업 관리자에서 두 가지 활동

일부 장치에서는 모든 것이 문제가 없으며 작업 관리자에 내 앱 인스턴스가 하나만 있지만 일부 장치 (예 : Samsung S7)에서 SecondActivity을 실행하면 작업 관리자에 내 앱이 두 개 인스턴스가있게됩니다 이 이미지처럼 :

enter image description here

내 생각 엔 뭔가 MainActivtylaunchMode에 이상이 있다는 것입니다하지만 난 그게 singleInstance해야합니다. 어떠한 제안?

EDIT :

<activity 
    android:name=".Activities.MainActivity" 
    android:screenOrientation="portrait" 
    android:launchMode="singleInstance" 
    android:theme="@style/AppTheme" 
    android:windowSoftInputMode="adjustPan"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

및 제 :

Intent intent = new Intent(getActivity(), 
intent.putExtra("VideoUri", filmGet.getOutput().getData().getFilmTrailer()); 
startActivity(intent); 
:

<activity 
    android:name=".Activities.SecondActivity" 
    android:screenOrientation="landscape" /> 

하는 코드 실행 매니페스트

MainActivity도움이된다면 조각에서 SecondActivity을 시작합니다.

+1

실행 모드를 singleTop 또는 singleTask로 변경해보십시오. – sharan

+0

새로운 활동을 어떻게 시작합니까? 'manifest.xml'과'launching int'를 공유 할 수 있습니까? – mallaudin

+0

다른 활동에서 MainActivity를 다시 시작해야하므로 singleTop은 내가 원하는 것이 아닙니다. 또한 어딘가에 단일 작업에 대해, 당신이 응용 프로그램을 시작할 때마다, singleTask 활동이 전면에 올 것이고 나는 이것을 원하지 않는다고 읽습니다. –

답변

4

그래서 @sharan 코멘트와 일부 검색 결과를 읽은 후, 일부 Google 문서를 읽게되었습니다. 문서에 따르면 android:launchMode=singleInstanceandroid:launchMode=singleTask은 차이가 없습니다. 그들은 둘 다 당신의 활동을 singleton로 만들었고 두 인스턴스를 가지지 않을 것입니다. 그 (것)들의 유일한 다름은 singleTask에는이 제한이없는 그러나 singleInstance는 업무가 다른 활동을 붙이는 것을 막을 것이라는 점입니다. 그들에 관한 다른 것들도 같습니다.

이 게시물을 읽고있는 사용자는 정확히 무엇이 필요한 경우가 아니면 singleInstance 실행 모드를 사용하지 말 것을 권장합니다. 앱에 하나의 활동 만있는 경우 singleInstancesingleTask 사이에는 차이가 없기 때문입니다. 그리고 하나 이상의 활동이 있다면, 하나의 작업에 속한 모든 활동에 당신을 추천 할 것입니다.

즉, singleInstance에서 singleTask으로 변경하면됩니다.

관련 문제