public class ScreenReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){
Intent i = new Intent(context, LockActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
context.startActivity(i);
Toast.makeText(context, "SCREEN OFF", Toast.LENGTH_SHORT).show();
}catch (Exception e){
Toast.makeText(context, "exception catch", Toast.LENGTH_SHORT).show();
}
}
}
}
제가 잠금화면을 구현하려고 작업을 하고 있는데요.
위의 코드와 같이 짜서 화면이 꺼졌을 때 잠금화면을 열고자 합니다.
서비스는 죽을때마다 다시 살려주는 작업을 해놔서 늘 살아있는 상태이구요.
화면을 껏다 키면 잠금화면이 뜨기도 합니다.
문제는, 서비스도 살아있고 브로드캐스트리시버가 화면이 꺼짐을 감지도 하지만
context.startActivity가 먹히지 않는 때가 있다는 겁니다
주로 시간이 좀 지나거나 다른어플을 좀만 사용해도 그렇게 됩니다.
위의 코드처럼 토스트메시지를 띄워서 서비스가 살아있는지, 브로드캐스트 리시버가 잘 동작하는지 확인해도
그 둘에는 문제가 없구요.
그렇다고 context.startActivity에서 에러를 발생시키지도 않는데, 왜 먹히지 않는지 모르겠습니다 ㅠ
어떻게 해결할 수 있을까요?