2011-10-16 1 views
0

안드로이드 근접 경보는 그것을 만든 프로세스가 종료 되더라도 해고 되었습니까?

m_LocationManager.addProximityAlert(lat, lon, radius, PROXMITY_ALERT_EXPIRATION_TIME, m_PendingIntent); 

내 응용 프로그램의 procces가 안드로이드에 의해 종료됩니다 어떤 점에서, 내가이 두 가지 방법을 구현 : :이 같은 근접 경고를 만들 어떤 시점에서 내 응용 프로그램에서

public void onSaveInstanceState(Bundle savedInstanceState) 
public void onRestoreInstanceState(Bundle savedInstanceState) 

하지만, 내 경보 doesnt가 ​​해고 .., 내 생각 엔 내가 서비스에 경고를 생성하는 코드를 이동해야합니다.

IntentFilter intentFilter = new IntentFilter("PROX_ALERT_INTENT"); 
    m_NotificationAlertReciever_BroadcastReciever = new NotificationAlertReciever_BroadcastReciever(m_myLocationListener, this); 
    registerReceiver(m_NotificationAlertReciever_BroadcastReciever, intentFilter); 

    Intent intent = new Intent("PROX_ALERT_INTENT"); 
    intent.putExtra("lat", lat); 
    intent.putExtra("lng", lon); 
    intent.putExtra("place", place); 

    m_PendingIntent = PendingIntent.getBroadcast(this, -1, intent, PendingIntent.FLAG_CANCEL_CURRENT); 

    this.m_LocationManager.addProximityAlert(lat, lon, radius, PROXMITY_ALERT_EXPIRATION_TIME, m_PendingIntent); 

sombody 그 승인 또는 다른 조언을 줄 수 있습니다

이 경고를 설정하는 코드입니다.

미리 감사드립니다. Amitos80

+0

이 보류중인 의도에 대한 IntentFilter가 있습니까? – Reno

+0

예,이 보류중인 의도에 대한 IntentFilter가 있습니다. 일반적으로 내 앱이 포 그라운드에있는 경우 아무런 문제가 없습니다. 의도가 발생합니다. 다른 아이디어가 있습니까? – amitos80

+0

이 인 텐트 필터의 동작은 무엇입니까? – Reno

답변

0

문제는 BroadcastReceiver 동적 registerReceiver를 사용하여 활동 내에서 생성된다는 것이다.

당신은 근접 경고 화재는 다음과 같이 AndroidManifest에 수신기를 선언해야 할 때 프로세스가 다시 시작되도록하려면 : 이제

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
    <action android:name="PROX_ALERT_INTENT/> 
    </intent-filter> 
</receiver> 

가 근접 경고가 발사되고, 과정 아무튼 경우 그것은 시작될 것이고 MyBroadcastReceiver.onReceive이 호출 될 것입니다.

수신자가 활동에서 중첩 된 클래스로 정의 된 경우 수신자가 활동의 메소드 및 데이터에 직접 액세스 할 수 있도록하기 위해 이와 같이 <receiver> 태그를 사용하는 것은 불가능합니다. 독립형 수신자를 사용하면 알림을 표시하거나 서비스를 시작하는 데 거의 제한됩니다.

또한 PROX_ALERT_INTENT 작업에는 애플리케이션 패키지가 접두어로 포함되어야합니다 (예 : my.app.PROX_ALERT_INTENT). 꼭 필요한 것은 아니지만 귀하의 행동을 앱에 맞게 유지하는 것이 관습입니다.

+0

대단히 감사합니다. – amitos80

관련 문제