[android 10] 백그라운드 서비스가 동작을 멈추었다.
final WorkManager mWorkManager = WorkManager.getInstance();
//final OneTimeWorkRequest mRequest = new OneTimeWorkRequest.Builder(BatteryWorkManager.class).build();
Constraints constraints = new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build();
PeriodicWorkRequest pRequest = new PeriodicWorkRequest.Builder(BatteryWorkManager.class, 15, TimeUnit.MINUTES).build();
//.setConstraints(constraints).build();
mWorkManager.enqueue(pRequest);
Log.d(TAG, “############## BatteryWorkManager 호출완료”);
private void callCompleteActivity(Context context, Intent intent){
try {
Log.e("ddolcat", "############################ [callCompleteActivity] start " );
Intent sIntent = new Intent(context, MainActivity.class);
sIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
sIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //Activity가 아닌 곳에서 startActivity를 사용하려고 할때 필수
context.startActivity(sIntent);
Log.e("ddolcat", "############################ [callCompleteActivity] finish " );
}catch (Exception e){
}
}
MainAcitivy 창 노출을 하지 못했다. 안드로이드 10 부터 안된다. 전체 화면으로 띄우는게 그렇게 문제가 된다는 것일까?
정말 백그라운드 서비스 단에서 Activity를 호출하지 못하는 것인가??? 불행하게도 아래 게시물에 보면 불가능하다!!
Restrictions on starting activities from the background
안드로이드 10부터 noti를 주고 USE_FULL_SCREEN_INTENT를 사용하여 전체화면으로 activity를 띄워야한다.
알림 만들기 | Android 개발자 | Android Developers
알림은 사용 중이 아닌 앱의 이벤트에 관한 짧고 시기적절한 정보를 제공합니다. 이 페이지에서는 Android 4.0(API 레벨 14) 이상의 다양한 기능을 사용하여 알림을 만드는 방법을 설명합니다. Android에서 알림이 표시되는 방식에 관한 소개는 알림 개요를 참조하세요. 알림을 사용하는 샘플 코드에 관해서는 Android 알림 샘플을 참조하세요. 이 페이지의 코드에서는 Android 지원 라이브러리의 NotificationCompat API를 사용
developer.android.com
USE_FULL_SCREEN_INTENT
public static final String USE_FULL_SCREEN_INTENT
Required for apps targeting Build.VERSION_CODES.Q
that want to use notification full screen intents
.
Protection level: normal
Constant Value: “android.permission.USE_FULL_SCREEN_INTENT”