2013-04-25 6 views
1

타이머가 실행되는 동안 알림을 표시하고 사용자가 알림을 클릭하면 타이머 활동이 열립니다.진행중인 알림 열기 기존 활동

 mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     Intent intent = new Intent(this, Activity.class).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

지금 문제는 내가 타이머를 눌러를 시작할 때 가정 한 후이 실행 타이머 활동을 여는 알림을 클릭 있다는 것입니다.

그러나 타이머를 시작한 다음 다른 활동을 열고 (ActionBar.NAVIGATION_MODE_LIST 경유) 집을 누르고 알림을 클릭하여 새 활동 (빈)을 엽니 다.

나는 addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 도움이 될 생각 android:launchMode="singleTop" 모든 활동에 대한

android:configChanges="orientation|screenSize"를 사용

메신저 (내가 활동 사이를 이동하는 데 사용 이잖아).

+0

매니페스트를 게시하십시오. 일반적으로'launchMode = "singleTask"를 사용하는 것은 정말로 나쁜 생각이며,이 작업을 모든 활동에 사용한다면 분명히 문제의 일부가됩니다. –

+0

미안하지만 나는 "singleTop"을 의미했습니다. – TeKo

+0

'새로운 의도 (this, YourActivity.class)' – StoneBird

답변

0

나는 지속 활동에 의존하지 것이다 그것은 된 SharedPreferences에 타이머 시작 시간 저장

불필요하며 활동을 다시 할 때 단순히 시작 시간을로드합니다.

카운트 다운 시간과 같이 일정 시간이 지나야 만 문제가 발생하면 알람을 설정하고 그런 식으로 처리해야합니다.

활동은 단지 UI 일뿐입니다. 사용자가 활동을보고 있지 않을 때 활동을 수행하는 것을 신뢰하지 마십시오.

+0

나는 카운트 다운 타이머를 사용하고 있고, 타이머 오브젝트와 나머지 ms를 타이머 오브젝트에 저장한다. 것은 활동이 정상에 있지 않는 동안 타이머가 잘 작동하는 것을 보인다이다. 타이머가 실행되는 동안 부분 웨이크 잠금 장치를 사용하고 있습니다. – TeKo

+0

음, 카운트 다운 타이머의 경우 완료 시간 동안 조치를 취하기 위해 알람을 사용해야합니다. AlarmManager를 찾으십시오. 활동은 타이머의 sharedpreferences에서 시작 시간을 가져와 UI의 현재 시간과의 차이를 표시해야합니다. 이 기능은 사용자의 작업과 상관없이 모든 휴대 전화에서 작동합니다. –

+0

이걸 보면서. 그러나 경보 자체는 심지어 문제가 아니다. 새 활동이 열리면 카운트 다운이 여전히 실행 중이며 활동에는 표시되지 않지만 경보는 울립니다. 나는 여러 카운트 다운을 동시에 사용할 수 있어야하고 일시 중지/재개 할 수 있어야합니다. 따라서 AlarmManager가 올바르다 고 이해하면 카운트 다운을 사용하여 일시 중지 된 후에 알람을 다시 시작해야합니다. 아무것도 작동하지 않는다면 아마 모든 카운트 다운을 멈추고 TimerObjects를 파일에 쓰고 onStart를 읽어야합니다. – TeKo