알림을 표시하지 않고 Foreground ()를 시작하는 방법은 무엇입니까?


87

서비스를 만들고 포 그라운드에서 실행하고 싶습니다.

대부분의 예제 코드에는 알림이 있습니다. 하지만 알림을 표시하고 싶지 않습니다. 가능합니까?

몇 가지 예를 들어 주시겠습니까? 대안이 있습니까?

내 앱 서비스가 미디어 플레이어를 수행하고 있습니다. 앱을 제외하고 시스템이 내 서비스를 죽이지 않게 만드는 방법 (예 : 버튼으로 음악 일시 중지 또는 중지).


11
알림없이 "Foreground"서비스를 가질 수 없습니다. 기간.
Jug6ernaut

1
"가짜"알림을 보내는 것은 어떻습니까? 그게 속임수인가요?
Muhammad Resna Rizki Pratama 2012-06-09

포 그라운드 알림이 설정되면 Rubber 앱을 사용하여 '백그라운드 알림 실행'을 삭제할 수 있습니다 .
로랑

1
@MuhammadResnaRizkiPratama, 수락 된 답변을 변경 하시겠습니까? 이 질문은 매우 인기가 있지만 받아 들여지는 대답은 완전히 구식이며 너무 무겁고 개발자가 왜 이것을 필요로하는지 가정합니다. 이 답변 은 신뢰할 수 있고 OS 버그를 악용하지 않으며 대부분의 Android 기기에서 작동하기 때문에이 답변을 제안 합니다.
Sam

답변:


95

안드로이드 플랫폼의 보안 기능으로, 당신은 할 수없는 , 아래에 어떤 상황도 통지를하지 않고 foregrounded 서비스가있다. 이는 포 그라운드 서비스가 더 많은 양의 리소스를 소비하고 백그라운드 서비스와 다른 스케줄링 제약 (즉, 빠르게 종료되지 않음)이 적용되고 사용자가 배터리를 먹는 원인을 알아야하기 때문입니다. 그러니 이러지 마세요 .

그러나, 그것은 이다 , 즉는 "가짜"알림을 가질 수 있습니다, 당신은 투명 알림 아이콘 (IIRC) 할 수 있습니다. 이것은 사용자에게 극도로 불명예하며 배터리를 죽여 악성 코드를 생성하는 것 외에는 할 이유가 없습니다.


3
감사. 그래서 setForeground에 알림이 필요한 이유가 분명해졌습니다.
무하마드 Resna 리즈 키 Pratama는

21
글쎄, 당신은 그것을 할 이유가있는 것 같습니다. 사용자들이 그것을 요구했습니다. 당신이 말한 것처럼 명확하지 않을 수 있지만 테스트 그룹에서 내가 작업하고있는 제품에 대해 요청했습니다. Android에는 항상 실행중인 일부 서비스의 알림을 숨기는 옵션이 있어야합니다. 그렇지 않으면 알림 표시 줄이 크리스마스 트리처럼 보입니다.
Radu

3
@Radu는 실제로 포 그라운드에 앱이 많으면 안됩니다 . 일정이 다르기 때문에 배터리 수명이 죽을 것입니다 (본질적으로 죽지 않음). 이것은 모드에 대해 허용 될 수 있지만 곧 바닐라 Android로 만드는 옵션이 보이지 않습니다. "사용자"일반적으로 그들에게 가장 모르겠어요 ..
크리스토퍼 Micinski

2
당신의 주장을 뒷받침하지 않는 @Radu. "수상을받은 앱"은 일반적으로 시스템 불일치를 통해 Android의 허점을 실제로 "수정"하는 앱입니다 (예 : 작업 킬러). "수상을받은 앱"이 그렇기 때문에 포 그라운드 서비스를 사용해야 할 이유가 없습니다. 그렇게한다면 사용자의 배터리를 죽였다는 것을 인정하는 것입니다.
Kristopher Micinski

2
분명히이 방법은 4.3부터 더 이상 작동하지 않습니다. plus.google.com/u/0/105051985738280261832/posts/MTinJWdNL8t
erbi '2013

79

업데이트 : 이것은 Android 7.1에서 "수정"되었습니다. https://code.google.com/p/android/issues/detail?id=213309

4.3 업데이트 이후, 그것은 기본적으로의 불가능 과 함께 서비스를 시작 startForeground()알림을 표시하지 않고.

그러나 공식 API를 사용하여 아이콘을 숨길 수 있습니다. 투명 아이콘이 필요하지 않습니다. ( NotificationCompat이전 버전을 지원하는 데 사용 )

NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setPriority(Notification.PRIORITY_MIN);

알림 자체가 여전히 있어야한다는 사실에 화해했지만 여전히 알림을 숨기고 싶은 사람을 위해 해결 방법을 찾았을 수도 있습니다.

  1. startForeground()알림과 모든 것으로 가짜 서비스를 시작하십시오 .
  2. startForeground()(동일한 알림 ID) 로 실행하려는 실제 서비스를 시작하십시오.
  3. 첫 번째 (가짜) 서비스를 중지합니다 ( stopSelf()및 onDestroy call에서 호출 할 수 있음 stopForeground(true)).

Voilà! 알림이 전혀없고 두 번째 서비스가 계속 실행됩니다.


23
감사합니다. 일부 사람들은 내부 업무용으로 진행되는 Android 개발이 있다는 사실을 인식하지 못하는 것 같습니다 (즉, 시장에 출시되거나 Joe Blow에게 판매되지 않도록 의도 된 것이 아닙니다). 때때로 사람들은 "서비스 알림 표시 중지"와 같은 것을 요구하며 일반적인 소비를 위해 정결하지 않더라도 해결 방법을 보는 것이 좋습니다.
JamieB 2013-08-20

5
@JamieB 더 이상 동의 할 수 없었습니다 ... Dianne Hackborn에게 백그라운드 서비스의 전체 개념을 재고하고 알림없이 백그라운드에서 서비스를 실행할 수있는 권한을 추가해야한다고 제안했습니다. 알림이 있는지 여부는 개발자에게 중요하지 않습니다. 제거를 요청하는 USER입니다! :) 그건 그렇고, 그것이 당신에게도 작동하는지 확인할 수 있습니까?
Lior Iluz 2013-08-20

1
@JamieB user875707은 알림 ID가 아닌 아이콘 매개 변수 (아이콘의 리소스 ID)를 0으로 설정하라고 말합니다 (그렇다면 문서에서 "startForeground"가 작동하지 않는다고 말 했으므로).
wangqi060934 2013-08-31

9
물론 이것이 향후 버전의 플랫폼에서 작동하지 않을 것이라고 가정해야합니다.
hackbod

1
@JamieB 실제로 지금 Android 5.0.1에서 테스트했으며 여전히 저에게 효과적입니다.
리 오르 Iluz

20

이는 Android 7.1에서 더 이상 작동하지 않으며 Google Play의 개발자 정책을 위반할 수 있습니다 .

대신 사용자가 서비스 알림을 차단하도록합니다 .


Lior Iluz 의 답변 에 대한 기술 구현은 다음과 같습니다 .

암호

ForegroundService.java

public class ForegroundService extends Service {

    static ForegroundService instance;

    @Override
    public void onCreate() {
        super.onCreate();

        instance = this;

        if (startService(new Intent(this, ForegroundEnablingService.class)) == null)
            throw new RuntimeException("Couldn't find " + ForegroundEnablingService.class.getSimpleName());
    }

    @Override
    public void onDestroy() {
        super.onDestroy();

        instance = null;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

}

ForegroundEnablingService.java

public class ForegroundEnablingService extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (ForegroundService.instance == null)
            throw new RuntimeException(ForegroundService.class.getSimpleName() + " not running");

        //Set both services to foreground using the same notification id, resulting in just one notification
        startForeground(ForegroundService.instance);
        startForeground(this);

        //Cancel this service's notification, resulting in zero notifications
        stopForeground(true);

        //Stop this service so we don't waste RAM.
        //Must only be called *after* doing the work or the notification won't be hidden.
        stopSelf();

        return START_NOT_STICKY;
    }

    private static final int NOTIFICATION_ID = 10;

    private static void startForeground(Service service) {
        Notification notification = new Notification.Builder(service).getNotification();
        service.startForeground(NOTIFICATION_ID, notification);
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

}

AndroidManifest.xml

<service android:name=".ForegroundEnablingService" />
<service android:name=".ForegroundService" />

적합성

테스트 및 작업 :

  • 공식 에뮬레이터
    • 4.0.2
    • 4.1.2
    • 4.2.2
    • 4.3.1
    • 4.4.2
    • 5.0.2
    • 5.1.1
    • 6.0
    • 7.0
  • Sony Xperia M
    • 4.1.2
    • 4.3
  • 삼성 갤럭시 ?
    • 4.4.2
    • 5.X
  • Genymotion
    • 5.0
    • 6.0
  • CyanogenMod
    • 5.1.1

Android 7.1에서 더 이상 작동하지 않습니다.


2
아직 테스트하지 않았지만 적어도 그것에 대한 권한이 있으면 좋을 것입니다 !!! "Google에"부분에 +1, 내 사용자가 앱을 백그라운드에서 계속 실행하는 데 필요한 알림에 대해 불평하고 있습니다. 또한 스카이프 / 라마 및 기타 다른 앱에 필요한 알림에 대해 불평하고 있습니다
Rami Dabain

이 예제를 사용하여 알람을 수신하는 방법에 대해 죄송합니다. 알람 관리자로 알람을 설정하는 앱을 개발 중이며 앱을 닫으면 (최근 앱-> 지우기) 모든 알람도 제거되고이를 방지 할 수있는 방법을 찾는 것이 문제입니다
Ares91

@ Ares91, 그것에 대해 별도의 StackOverflow 질문을 만들고 관련 코드를 포함하여 가능한 한 많은 정보를 포함하십시오. 나는 알람에 대해 잘 모르며이 질문은 서비스에 관한 것입니다.
Sam

서비스가 먼저 호출되어야한다 @Sam, ForegroundEnablingService 또는를 forground
안드로이드 남자

@AndroidManForegroundService
Sam

14

이것을 사용할 수 있습니다 (@Kristopher Micinski가 제안한대로) :

Notification note = new Notification( 0, null, System.currentTimeMillis() );
note.flags |= Notification.FLAG_NO_CLEAR;
startForeground( 42, note );

최신 정보:

Android KitKat + 릴리스에서는 더 이상 허용되지 않습니다. 그리고 이것은 @Kristopher Micinski가 언급 한대로 백그라운드 작업을 사용자에게 표시하는 Android의 디자인 원칙을 다소 위반한다는 점을 명심하십시오.


2
이 SDK (17) 드로어 블 알림에 전달하면 전경에 갈 것입니다 서비스를 더 이상 받아 들여질 것 같지 않습니다 0입니다
Snicolas

그것은 버그 였고 희망적으로 수정되었습니다. Foreground 서비스의 아이디어는 죽을 가능성이 적다는 것이며, 이는 사용자가 그 존재를 인식하도록하는 방법입니다.
Martin Marconcini 2013 년

4
안드로이드 (18)와 함께 알림이 더 이상 보이지 아니라 "앱 자세한 내용은, 터치를 실행하거나 응용 프로그램을 중지"라는 쇼
엠마누엘 Moecklin

1
고객의 스크린 샷 : 1gravity.com/k10/Screenshot_2013-07-25-12-35-49.jpg . 나는 4.3 장치도 가지고 있으며 그 결과를 확인할 수 있습니다.
Emanuel Moecklin 2013

2
경고 : Android 4.1.2 (SDK 16)를 사용하는 Sony Ericsson LT26i (Xperia S)에서 충돌 보고서를 받고 있습니다. android.app.RemoteServiceException : 패키지에서 게시 된 잘못된 알림 ... : 아이콘을 만들 수 없습니다 : StatusBarIcon (pkg = ... id = 0x7f020052 level = 0 visible = true num = 0) SDK 17까지 아이콘 ID도 0으로 설정했습니다. SDK 18에서 유효한 드로어 블 리소스로 설정했습니다. 아마도 SDK 16의 유효한 아이콘 ID가 필요합니다!
almisoft 2013 년

13

경고 :이 답변이 작동하는 것처럼 보이지만 실제로 는 서비스가 포 그라운드 서비스가되는 것을 조용히 방지합니다 .

원래 답변 :


알림 ID를 0으로 설정하기 만하면됩니다.

// field for notification ID
private static final int NOTIF_ID = 0;

    ...
    startForeground(NOTIF_ID, mBuilder.build());
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    mNotificationManager.cancel(NOTIF_ID);
    ...

얻을 수있는 이점은 Service높은 메모리 압력이없는 한 Android 시스템에 의해 파괴되지 않고 높은 우선 순위로 실행될 수 있다는 것입니다.

편집하다

Pre-Honeycomb 및 Android 4.4 이상에서 작동하도록하려면 NotificationCompat.Builder지원 라이브러리 v7에서 제공하는 Notification.Builder.


1
이것은 4.3 (18) @vlad sol에서 완벽하게 작동합니다. 이 답변에 대해 아직 다른 찬성 투표가없는 이유는 무엇입니까?
Rob McFeely

Android N Preview 4에서 시도했지만 작동하지 않았습니다. 나는 Notification.Builder지원 라이브러리 v4 NotificationCompat.Builder및 지원 라이브러리 v7을 시도했습니다 NotificationCompat.Builder. 알림 창 또는 상태 표시 줄에 알림이 표시되지 않았지만 getRunningServices()및 을 사용하여 확인했을 때 서비스가 포 그라운드 모드에서 실행되지 않았습니다 dumpsys.
Sam

@Sam,이 버그는 이전 버전에는 나타나지 않습니다. 맞습니까?
Anggrayudi H

@AnggrayudiH, "이 버그"란 알림이 나타나지 않는다는 의미입니까? 아니면 서비스가 포 그라운드 모드로 전환되지 않는다는 의미입니까?
Sam

1
이것은 나를 위해 작동하지 않습니다. 프로세스는 id! = 0이 전송되면 포 그라운드로 시작되지만 id = 0이면 포 그라운드로 시작되지 않습니다. adb shell dumpsys activity services확인에 사용 합니다.
beetree 2011

8

layout_height = "0dp"인 맞춤 레이아웃을 사용하여 Android 9 이상에서 알림을 숨길 수 있습니다.

NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NotificationUtils.CHANNEL_ID);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.custom_notif);
builder.setContent(remoteViews);
builder.setPriority(NotificationCompat.PRIORITY_LOW);
builder.setVisibility(Notification.VISIBILITY_SECRET);

custom_notif.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="0dp">
</LinearLayout>

Pixel 1, Android 9에서 테스트되었습니다.이 솔루션은 Android 8 이하에서 작동하지 않습니다.


좋은 해결 방법입니다. 또한 Android 10에서는 아이콘이 필요하다고 생각합니다. 아이콘에 투명한 자리 표시 자 이미지를 사용하면 문제가 해결됩니다.
shyos

7

업데이트 : 더 이상 Android 4.3 이상에서 작동하지 않습니다.


한 가지 해결 방법이 있습니다. 아이콘을 설정하지 않고 알림을 생성하면 알림이 표시되지 않습니다. 어떻게 작동하는지 모르지만 작동합니다. :)

    Notification notification = new NotificationCompat.Builder(this)
            .setContentTitle("Title")
            .setTicker("Title")
            .setContentText("App running")
            //.setSmallIcon(R.drawable.picture)
            .build();
    startForeground(101,  notification);

3
Android N Preview 4에서는 작동하지 않습니다. Android는 (YourServiceName) is running아이콘을 지정하지 않으면 자신 의 알림 대신 알림을 표시 합니다. CommonsWare에 따르면 Android 4.3 이후에 해당됩니다. commonsware.com/blog/2013/07/30/…
Sam

1
오늘 몇 가지 테스트를 수행 한 결과 Android 4.3 이상에서 작동하지 않음을 확인했습니다.
Sam

5

업데이트 : 더 이상 Android 4.3 이상에서 작동하지 않습니다.


Notification 생성자에 대한 icon 매개 변수를 0으로 설정 한 다음 결과 알림을 startForeground ()에 전달했습니다. 로그에 오류가없고 알림이 표시되지 않습니다. 하지만 서비스가 성공적으로 포 그라운드되었는지 여부는 모르겠습니다. 확인할 방법이 있습니까?

편집 됨 : dumpsys로 확인했으며 실제로 서비스는 내 2.3 시스템에서 포 그라운드됩니다. 아직 다른 OS 버전으로 확인하지 않았습니다.


9
"adb shell dumpsys activity services"명령을 사용하여 "isForeground"가 true로 설정되어 있는지 확인합니다.
블랙

1
또는 빈 Notification()생성자를 호출하십시오 .
johsin18

이것은 나를 위해 일했습니다. 처음으로 서비스를 밤새 실행하도록하여 확실히 포 그라운드에 있고 (dumpsys가 그렇다고 말합니다) 알림이 없습니다.
JamieB

Android 4.3 (API 18)에서는 더 이상 작동하지 않습니다. OS는 알림 창에 자리 표시 자 알림을 넣습니다.

4

포 그라운드 서비스 알림 차단

여기에서 대부분의 답변은 작동하지 않거나 포 그라운드 서비스가 중단 되거나 Google Play 정책을 위반 합니다.

안정적이고 안전하게 알림을 숨기는 유일한 방법은 사용자가 알림을 차단하도록하는 것입니다.

Android 4.1-7.1

유일한 방법은 앱의 모든 알림 을 차단 하는 것입니다 .

  1. 사용자를 앱의 세부 정보 화면으로 보냅니다.

    Uri uri = Uri.fromParts("package", getPackageName(), null);
    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).setData(uri);
    startActivity(intent);
    
  2. 사용자가 앱의 알림을 차단하도록합니다.

이것은 또한 앱의 토스트를 차단합니다.

안드로이드 8.0-8.1

OS가 " 백그라운드에서 실행 중 "또는 " 배터리 사용 "알림으로 대체하기 때문에 Android O에서 알림을 차단할 가치가 없습니다 .

Android 9 이상

알림 채널 을 사용 하여 다른 알림에 영향을주지 않고 서비스 알림을 차단합니다.

  1. 알림 채널에 서비스 알림 할당
  2. 사용자를 알림 채널 설정으로 보내기

    Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
        .putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName())
        .putExtra(Settings.EXTRA_CHANNEL_ID, myNotificationChannel.getId());
    startActivity(intent);
    
  3. 사용자 차단 채널 알림


2

버전 4.3 (18) 이상은 서비스 알림을 숨길 수 없지만 아이콘을 비활성화 할 수 있으며 버전 4.3 (18) 이하는 알림을 숨길 수 있습니다.

Notification noti = new Notification();
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN) {
    noti.priority = Notification.PRIORITY_MIN;
}
startForeground(R.string.app_name, noti);

이 답변은 정확하고 유용 할 수 있지만 문제 해결에 도움이되는 방법을 설명하기 위해 몇 가지 설명을 함께 포함하는 것이 좋습니다. 이것은 작동을 멈추게하는 변경 (아마도 관련이 없음)이 있고 사용자가 한 번 작동 한 방식을 이해해야하는 경우에 특히 유용합니다.
Kevin Brown

Android 4.3은 실제로 API 18이라고 생각합니다. 또한이 메서드는 상태 표시 줄에서 아이콘 만 숨 깁니다. 아이콘은 알림에 여전히 존재합니다.
Sam

알림에서 아이콘을 숨기려면 빈 이미지를 추가 할 수 있습니다. mBuilder.setSmallIcon (R.drawable.blank);
vlad sol

1
나는 kitkat 소스를보고 있는데 제로 ID 방법이 작동하지 않는 것 같습니다. ID가 0이면 서비스 레코드가 NOT 포 그라운드로 업데이트됩니다.
Jeffrey Blattman

2

Android 8.0에서 알림 채널을 사용하지 않아도 여전히 가능하다는 것을 알았습니다.

public class BootCompletedIntentReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                Intent notificationIntent = new Intent(context, BluetoothService.class);    
                context.startForegroundService(notificationIntent);

            } else {
                //...
            }

        }
    }
}

그리고 BluetoothService.class에서 :

 @Override
    public void onCreate(){    
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            Intent notificationIntent = new Intent(this, BluetoothService.class);

            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

            Notification notification = new Notification.Builder(this)
                    .setContentTitle("Title")
                    .setContentText("App is running")
                    .setSmallIcon(R.drawable.notif)
                    .setContentIntent(pendingIntent)
                    .setTicker("Title")
                    .setPriority(Notification.PRIORITY_DEFAULT)
                    .build();

            startForeground(15, notification);

        }

    }

지속적인 알림은 표시되지 않지만 Android 'x 앱이 백그라운드에서 실행 중입니다'알림이 표시됩니다.


"서비스 통지를 무효 채널 startForeground에 대한 나쁜 알림 : : : java.lang.RuntimeException가"안드로이드 8.1에서
T-IGRA

개인적으로 apps are running in the background알림이 앱별 알림보다 더 나쁘다고 생각 하므로이 접근 방식이 그만한 가치가 있는지 모르겠습니다.
Sam

-2

업데이트 : 더 이상 Android 7.1 이상에서 작동하지 않습니다.


다음은 앱의 oom_adj를 1로 만드는 방법입니다 (ANDROID 6.0 SDK 에뮬레이터에서 테스트 됨). 임시 서비스를 추가하십시오 startForgroundService(NOTIFICATION_ID, notificion). 그런 다음 startForgroundService(NOTIFICATION_ID, notificion)동일한 알림 ID로 임시 서비스 호출 을 다시 시작하고 잠시 후 임시 서비스 호출 stopForgroundService (true)에서 ontification을 해제합니다.


이것이 내가 아는 유일한 작업 솔루션입니다. 그러나 이미 다른 답변으로 덮여 있습니다.
Sam

-3

애플리케이션을 지속적으로 선언 할 수도 있습니다.

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/Theme"
    *android:persistent="true"* >
</application>

이것은 본질적으로 앱이 더 높은 메모리 우선 순위로 설정되어 앱이 종료 될 가능성을 줄입니다.


5
이것은 잘못된 것입니다. 시스템 앱만 영구적 일 수 있습니다. groups.google.com/forum/?fromgroups=#!topic/android-developers/…
Snicolas

-6

몇 달 전에 간단한 미디어 플레이어를 개발했습니다. 그래서 내가 믿는 것은 당신이 다음과 같은 것을하고 있다면 :

Intent i = new Intent(this, someServiceclass.class);

startService (i);

그러면 시스템이 서비스를 종료 할 수 없습니다.

참고 : 시스템이 서비스를 중지하는 경우 논의하는 단락을 읽으십시오.


일부 기사를 읽었습니다. startService () 만하면 시스템에 더 많은 메모리가 필요합니다. 따라서 시스템은 해당 서비스를 종료합니다. 그게 사실입니까? 나는 서비스에서 실험을 할 시간이 없습니다.
Muhammad Resna Rizki Pratama 2012-06-09

1
Muhammad는 사실입니다. startForeground ()의 목적은 서비스가 더 오래 지속될 수 있도록 백그라운드 서비스보다 더 높은 "메모리 우선 순위"를 효과적으로 제공하는 것입니다. startForeground ()는 알림을 사용하여 사용자가 실행중인 더 지속적이고 중단하기 어려운 서비스를 더 잘 알 수 있도록해야합니다.
DustinB 2012

이것은 사실이 아닙니다. 안드로이드에서 죽일 수없는 서비스를 만드는 것은 사실상 불가능합니다. Android는 비포 그라운드 서비스를 즉시 종료하여 메모리를 확보합니다.
Sam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.