티스토리 뷰

반응형

Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.

Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.

 

아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

Start Activity from Service in Android

안드로이드에서 서비스에서 액티비티를 시작하는 방법

 문제 내용 

Android:

public class LocationService extends Service {

    @Override
    public void onStart(Intent intent, int startId) {
        super.onStart(intent, startId);
        startActivity(new Intent(this, activity.class));
    }
}

 

I launched this service from Activity

이 서비스는 액티비티에서 실행되었습니다.

 

In Activity if condition satisfies start

액티비티에서 조건이 충족되면 시작합니다.
startService(new Intent(WozzonActivity.this, LocationService.class));

 

from my LocationService mentioned above could not launch Activity, how can I get context of current running Activity in service class?

위에서 언급한 LocationService에서 액티비티를 실행할 수 없는 경우, 서비스 클래스에서 현재 실행 중인 액티비티의 컨텍스트를 가져오는 방법이 있을까요?

 

 

 

 높은 점수를 받은 Solution 

From inside the Service class:

서비스 클래스 내부에서:
Intent dialogIntent = new Intent(this, MyActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);

 

But, this does not work from Android 10+ due to battery optimisation restrictions

하지만 안드로이드 10 이상에서는 배터리 최적화 제한 때문에 작동하지 않습니다.

 

 

 

 가장 최근 달린 Solution 

UPDATE ANDROID 10 AND HIGHER

Android 10 이상 업데이트

 

Start an activity from service (foreground or background) is no longer allowed.

서비스 (foreground 또는 background)에서 액티비티를 시작하는 것은 더 이상 허용되지 않습니다.

 

There are still some restrictions that can be seen in the documentation

문서에서 확인할 수 있는 여전히 몇 가지 제한 사항이 있습니다.

 

https://developer.android.com/guide/components/activities/background-starts

 

 

 

출처 : https://stackoverflow.com/questions/3606596/start-activity-from-service-in-android

반응형
댓글
공지사항
최근에 올라온 글