3

SD 카드의 오디오 파일을 재생하기위한 미디어 플레이어 앱을 개발 중입니다. 응용 프로그램을 사용하여 오디오 파일을 볼 수 있으며 선택한 노래를 재생할 수 있습니다. 노래를 재생하는 동안 뒤로 버튼을 누르면 알림이 생성됩니다. MainActivity (PendingIntent를 사용하여)를 시작할 때 문제가 발생합니다. 응용 프로그램이 이전 MainActivity 인스턴스를 시작하는 대신 MainActivity의 새 인스턴스를 시작합니다.알림이 여러 액티비티 인스턴스를 실행합니다.

매니페스트에서 MainActivity launchMode를 "Singletop"으로 변경했습니다. 응용 프로그램에는 하나의 액티비티 만 있습니다.

알림 플래그도 추가하려고했지만 여전히 애플리케이션이 다른 인스턴스를 시작하고 있습니다.

무엇이 잘못 되었습니까. 얻을 수 없습니다. 제발 도와주세요.

답변

2
Intent intent=new Intent(this,Element.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 

이 날 :)

0

오래된 질문에 근무하지만, kishu27 솔루션을 통합하기 위해 (감사합니다!), 작동하지만 대상 의도로 응용 프로그램 내에서 사용자의 탐색을 재설정의 유일한 단점이있는

public class NotificationLanding extends Activity { 

    @Override 
    public void onCreate(Bundle mainBundle) { 
     super.onCreate(mainBundle); 

     View view = new View(this); 
     view.setBackgroundColor(Color.TRANSPARENT); 
     setContentView(view); 

     finish(); 
    } 
} 

(또한 선언하는 것을 잊지 마세요 : (또는 당신이 원하는하지 않을 수 있습니다) 스택을 삭제, 다른 해결책이 될 수 텐트의 대상을 유일한 작업과 전문 작업을 만드는 것입니다 매니 페스트에서의 활동!)

<activity android:name=".NotificationLanding"/> 

그리고 사용자의 탐색에 영향을 미치지 않으면 서 응용 프로그램을 "집중"하기 위해이를 사용하십시오. 아마도 같은 효과를 얻으려면 다른 방법이있을 수 있습니다. 의견을 환영합니다.

반드시 필요한 것은 아니지만 Intent에 kishu27 Intent 플래그를 통합 할 것을 권장합니다 (필자의 경우).

도움이 되길 바랍니다.

관련 문제