2011-10-13 1 views
4

활동을 시작하는 알림이 있습니다. 홈 버튼을 길게 누르고 내 앱을 선택한 후 알림을 통해 시작된이 활동이 아닌 내 기본 활동을 다시 시작하고 싶습니다. 나는 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS로 시도했지만, 이것은 필자의 전체 응용 프로그램을 recents에서 제거했습니다. 그리고 그것은 내가 성취하고자하는 것이 아닙니다. 최근 앱에 내 앱을 넣을 수 있지만 기본 활동을 시작하려면 어떻게해야합니까?FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS은 활동뿐만 아니라 전체 응용 프로그램을 제외합니다.

감사합니다.

답변

11

좋아, 내 문제에 대한 해결책을 발견했다. FLAG_ACTIVITY_NEW_TASK으로 알림에서 활동을 시작했습니다. 그러나 친화력이 기본 선호도와 다른 경우에만이 활동이 자체 작업에서 시작됩니다. 그래서 매니페스트에 다른 친 화성을 추가해야했습니다.

그리고 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS은 recently에서 Activity를 제외하고 Activity가 recents에서 시작되는 전체 작업 (전체 응용 프로그램이 아닌)을 제외하는 것으로 보입니다. 그리고 다른 선호도를 설정하지 않았으므로 제외하려는 활동이 동일한 작업 (비록 내가 FLAG_ACTIVITY_NEW_TASK으로 설정되었지만)에서 시작되었고 내 전체 응용 프로그램 (하나의 작업으로 실행 중이었던 것처럼)이 후속 작업에서 제외되었습니다 .

이제 알림에서 시작된 활동에 대해 다른 선호도를 설정하고 FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS으로 시작합니다. 이 액티비티를 종료하고 홈 버튼을 길게 누르면 앱이 선택되고 기본 작업이 시작되거나 맨 앞으로 가져옵니다. 그것이 내가 위에서 언급 한 어떤 잘못되면, 그것을 취소 주시기

...

+0

고마워,이게 내가 겪고있는 문제와 비슷해. 어떻게 작업의 친 화성을 바꿨 니? –

+2

미래에 이것을 발견 한 사람은 누구나 내 자신의 질문에 대답했습니다 : 매니페스트 세트에서 'android : taskAffinity = "com.yourpackage.YourActivity"' –

+0

홈 버튼을 누르면 자신의 활동이 파괴됩니까? 이제 알림 활동을 다시 탐색 할 수 없기 때문에 – Kushan

1

내가 원하는 것은 분명하지 않습니다.

"내 앱을 다시 읽지 만 메인 활동이 으로 시작 되려면 어떻게해야하나요?"

긴 홈 프레스를 사용하여 하나의 활동을 시작하려면 매니페스트에서 활동을 singleTask으로 정의 할 수 있습니다.

그런 식으로 홈을 길게 누르면 바로 가기를 선택하면 항상 MAIN, singleTask 활동이 표시됩니다. 한 번 전에이 행동을 사용했기 때문에 나는 이것을 말한다. ;-)

나는 이것을 사용하여 보통 Intent을 사용하여 정상적으로 알림에서 활동을 시작할 수 있다고 생각합니다. 활동 태그에서

:

 android:launchMode="singleTask" 
     > 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

난 당신이 내가 원하는하지만 launchMode는 = "singleTask는"내 문제가 해결되지 않는 것을 이해 생각합니다. 긴 홈 프레스 후에 앱의 바로 가기를 선택하면 항상 내 MAIN이 표시되는 것은 아니며, 내가 사용한 마지막 Activity가 표시됩니다. – Binabik

+0

매니페스트를 여기에 복사하여 붙여 넣으십시오. – davidcesarino

+0

<활동 안드로이드 : 이름 = "로 SplashScreen." 안드로이드 : 라벨 = "@ 문자열/labelApplication" 안드로이드 : 테마 = "@ 안드로이드 : 스타일/Theme.NoTitleBar"> <의도 필터> <액션 안드로이드 : 이름 = "android.intent.action.MAIN"/> 내가 활동되는 SplashScreen을 시작하려는 집에 길게 누르면 ... 난 launchMode를 제거 후 – Binabik

관련 문제