2012-08-10 3 views
0

알람을 모두 n 분으로 설정하고 정상적으로 작동하도록 설정했습니다. 그러나 브로드 캐스트 수신기에서 응용 프로그램의 SharedPreferences를 읽는 중 일부 문제가 발생했음을 발견했습니다. (아마도 다른 PID로 인해 해당 환경 설정의 이전 버전을 읽었습니다.)브로드 캐스트 수신자로부터 활동 호출하기, 백그라운드로 유지하기

내가해야 할 일을 말했고 SharedPreferences 문제를 해결했지만 새로운 것을 생성 한 Activity를 호출해야합니다.

활동은 배타적으로 만 실행해야합니다. 그것은 근본적으로 하트 비트입니다. 프레즌스 솔루션에 일부 정보를 보내 사용자의 생존을 유지합니다.

알람 수신기 : 공용 클래스가 AlarmReceiver가 브로드 캐스트 리시버 {

@Override 
    public void onReceive(Context context, Intent intent) { 
     Intent alarmIntent = new Intent(context, AlarmActivity.class); 
     alarmIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(alarmIntent); 
    } 
} 

알람 활동에만 HTTP 업데이트를 전송하는 매니페스트

<activity android:name=".AlarmActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/> 

의 활동을 확장,하지만 난 제거 할 경우에도 모두 super.oncreate 라인을 만들었지 만 여전히 애플리케이션을 포 그라운드로 보내고 초점을 맞 춥니 다. 그러나 응용 프로그램 자체가 홈 버튼을 통해 "최소화"된 경우에만 발생합니다. 뒤로 버튼으로 닫으면 초점이 맞지 않을 것이고 하트 비트는 여전히 배경에서 잘 발사됩니다.

어떻게 방지 할 수 있습니까?

API 버전 7 (Android 2.1) 용으로 개발 중이지만 필요한 경우 API 8로 업데이트 할 수 있습니다.

답변

2

Service을 사용하여 백그라운드 작업을 수행하십시오.

+0

그건 속임수 였어. 감사. 서비스 작업을 끝내기 위해 뭔가를해야합니까? Activity "finish()"메서드 호출과 마찬가지로? –

+0

stopSelf()를 호출 할 수 있습니다. 감사합니다. –

+0

. 이것은 올바른 단어가 성가신 문제에 대한 올바른 해결책을 유발하는 사례 중 하나이며, 다른 모든 것들은 바로 다음에 자리 잡고 있습니다. :) –