티스토리 뷰
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
'개발 > 안드로이드' 카테고리의 다른 글
java.lang.NullPointerException: 'android.view.View.getImportantForAccessibility()' 메소드를 null 객체 참조에서 호출하려고 시도했습니다. (0) | 2023.02.23 |
---|---|
안드로이드에서 이전 화면으로 돌아가고 액티비티를 종료하는 방법 (0) | 2023.02.23 |
java.net.SocketException: socket failed: EPERM (Operation not permitted) 에러 수정하기 (0) | 2023.02.22 |
액티비티 종료하기 전에 대화상자 띄워 재확인하기 (0) | 2023.02.22 |
어떤 동작을 클릭했을 때 알림(notification)을 제거하기 (0) | 2023.02.21 |