ν¬κ·ΈλΌμ΄λ μλΉμ€λ?
- ν¬κ·ΈλΌμ΄λ μλΉμ€λ μ ν리μΌμ΄μ μμ μ¬μ©μ κ²½νμ κ°μ νκ³ , μ€μν μμ μ μμ μ μΌλ‘ μ²λ¦¬ν μ μλ μ€μν λꡬ
- ν¬κ·ΈλΌμ΄λ μλΉμ€λ μ¬μ©μκ° μ±μ μ¬μ©νκ³ μμ λλ μλ¦Όμ ν΅ν΄ νμ± μνμμ 보μ¬μ£ΌκΈ° λλ¬Έμ, μ¬μ©μλ μΈμ λ μ§ μ΄ μλΉμ€λ₯Ό μ€μ§νκ±°λ μνλ₯Ό νμΈν μ μλ€.
- μ΄λ¬ν νΉμ± λλ¬Έμ μλλ‘μ΄λ μμ€ν μ ν¬κ·ΈλΌμ΄λ μλΉμ€λ₯Ό λ€λ₯Έ λ°±κ·ΈλΌμ΄λ μλΉμ€λ³΄λ€ μ°μ μ μΌλ‘ λ€λ£¨λ©°, νμν 리μμ€μ κΆνμ μ 곡νλ€.
ν¬κ·ΈλΌμ΄λ μλΉμ€ μ¬μ© μμ
μμ μ¬μ: μμ μ±μμλ ν¬κ·ΈλΌμ΄λ μλΉμ€λ₯Ό μ¬μ©νμ¬ μ¬μ©μκ° μ±μ μ’ λ£νλλΌλ μμ μ κ³μ μ¬μν μ μλ€. μ΄ μλΉμ€λ μλ¦Όμ ν΅ν΄ μ¬μ©μμκ² νμ¬ μ¬μ μ€μΈ μμ μ 보μ¬μ£Όλ©°, μμ μ μ΄ κΈ°λ₯λ μ 곡ν μ μλ€.
μμΉ μΆμ : μμΉ κΈ°λ° μ±μμλ ν¬κ·ΈλΌμ΄λ μλΉμ€λ₯Ό μ¬μ©νμ¬ μ¬μ©μμ μμΉλ₯Ό μ§μμ μΌλ‘ μΆμ ν μ μλ€. μ΄λ μ¬μ©μμκ² μ€μν κΈ°λ₯μ΄λ©°, μ±μ΄ λ°±κ·ΈλΌμ΄λμμλ μ νν μμΉ μ λ°μ΄νΈλ₯Ό μ 곡ν μ μλ€. μ) λ΄λΉκ²μ΄μ μ±, μ΄λ μΆμ μ±
λ€νΈμν¬ μμ² μ²λ¦¬: λ€νΈμν¬ μμ²μ΄ κΈ΄ μκ° λμ νμν κ²½μ°, ν¬κ·ΈλΌμ΄λ μλΉμ€λ₯Ό μ¬μ©νμ¬ μμ μ μΌλ‘ μ²λ¦¬ν μ μλ€. μ) νμΌ λ€μ΄λ‘λ, λ°μ΄ν° λκΈ°ν, λ΄μ€ μλ¦Ό λ±
νκ²½μ€μ νκΈ°
TrackingService.java
package com.~.tmap.services;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import com.~.tmap.R;
public class TrackingService extends Service {
private static final int NOTIFICATION_ID = 1;
private static final String CHANNEL_ID = "my_foreground_service_channel";
@Override
public void onCreate() {
// ν¬κ·ΈλΌμ΄λ μλΉμ€κ° μμ±λ λ μ€νλλ μ΄κΈ°ν μ½λ
super.onCreate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
CHANNEL_ID,
"Foreground Service Channel",
NotificationManager.IMPORTANCE_DEFAULT
);
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// ν¬κ·ΈλΌμ΄λ μλΉμ€λ₯Ό μν μλ¦Ό μμ±
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("ν¬κ·ΈλΌμ΄λ μλΉμ€ μ€ν μ€")
.setContentText("μλΉμ€κ° μ€ν μ€μ
λλ€.")
.setSmallIcon(R.drawable.ic_notification_icon)
.build();
// ν¬κ·ΈλΌμ΄λ μλΉμ€ μμ
startForeground(NOTIFICATION_ID, notification);
// ν¬κ·ΈλΌμ΄λ μλΉμ€μμ μνν μμ
μ μ¬κΈ° μλλΆν° ꡬννλ©΄ λ¨
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
stopForeground(true); // ν¬κ·ΈλΌμ΄λ μλΉμ€ μ’
λ£
}
}