매 시간마다 사용자의 현재 위치를 서버로 보내는 간단한 서비스를 구현하려고합니다. 내 응용 프로그램은 단지 Activity
로그인하고 활동을 설정하고 일반적으로 백그라운드에서 일하고있다. 내 목적을 달성하기 위해 AlarmManager
사용하고 잘 작동하지만 내 receiver
내 응용 프로그램을 중지하도록 강제 때 작동하지 않습니다. 여기에 제 코드가 있습니다.강제 종료 후 AlaramManager가 작동하지 않습니다.
MyApplication.java
@Override
public void onCreate() {
super.onCreate();
startService();
}
private void startService(){
Intent receiver = new Intent(this, LocationAlaramReceiver.class);
PendingIntent intent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
mgr.setRepeating(AlarmManager.RTC, System.currentTimeMillis(), AlarmManager.INTERVAL_HOUR, intent);
}
의 AndroidManifest.xml
<receiver
android:name=".receiver.LocationAlarmReceiver">
</receiver>
LocationAlarmReceiver.java
public class LocationAlarmReceiver extends BroadcastReceiver
{
private final static String TAG = "LocationAlarmReceiver";
@Override
public void onReceive(Context context, Intent intent)
{
Log.d(TAG, "=========== onReceive ==============");
//Do something later
}
}
그냥 내 케이스를보고, 그것은 보일 것 같아요 AlarmManager
항상 호출됩니다. 각 시간당 LocationAlramReceiver
을 유지하고 싶습니다. 문제를 어떻게 해결할 수 있습니까?
강제 종료 대화 상자에서 앱이 강제로 정지 된 후 올바르게 작동하거나 신뢰할 수 없다고 표시됩니다. 당신이 스팸 메일을 만들려고하는 것처럼 솔직히 그렇게 기대한다고 생각합니다. –
Noop. 내 앱이 사용 중지 된 휴대 전화에 설치됩니다. 위치를 도움말 센터에 보내면 쉽게 뒤돌아 볼 수 있습니다. 그래서 내 앱은 누군가가 그것을 죽일지라도 항상 백그라운드에서 실행되어야합니다. – sunghun
앱에 펌웨어가 포함되어 있지 않으면이 작업을 수행 할 수 없습니다. 앱을 죽게하고 싶지 않다면, 사용자에게 죽이지 말라. –