2017-05-09 7 views
-2

앱이 실행 중일 때 화면 상태를받을 수 있었지만 앱이 멈 추면받을 수 없었습니다. 여기안드로이드 화면이 켜졌을 때 브로드 캐스트를받는 방법

내 코드에서 onCreate 활동 LockService

public class LockService extends Service { 
@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
} 
@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    final IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); 
    filter.addAction(Intent.ACTION_SCREEN_OFF); 
    filter.addAction(Intent.ACTION_USER_PRESENT); 
    Log.e("Action","Screen"); 
    final BroadcastReceiver mReceiver = new ScreenReceiver(); 
    registerReceiver(mReceiver, filter); 
    Log.e("Sample","Screen"); 
    return super.onStartCommand(intent, flags, startId); 

} 
public class LocalBinder extends Binder { 
    LockService getService() { 
     return LockService.this; 
    } 
} 
} 

브로드 캐스트 리시버

public class ScreenReceiver extends BroadcastReceiver { 
Intent intent; 
@Override 
public void onReceive(final Context context, Intent intent) { 
    if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 
     Log.e("Screen state"," ON"); 
     Intent i = new Intent(context, MainActivity.class); 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
    } 
} 
} 

MainActivity

startService(new Intent(getApplicationContext(), LockService.class)); 

Manifest.xml

<service android:name=".LockService"> 
    <intent-filter> 
     <action android:name="android.intent.action.ACTION_SCREEN_ON"/> 
     <action android:name="android.intent.action.ACTION_SCREEN_OFF"/> 
     <action android:name="android.intent.action.ACTION_USER_PRESENT"/> 

    </intent-filter> 
</service> 

나는 사용자가

+2

안녕하세요,이 질문에 대해 살펴. http://stackoverflow.com/q/13307565/5241603 –

+0

앱이 정지해도 작동합니까? – KidPPAP

+0

앱이 실행 중일 때만 링크가 작동합니다. – KidPPAP

답변

0

내 코드가 작동하는 전화를 깨울 때 활동을 시작합니다. 내 휴대 전화가 불안정하면 내 휴대 전화를 다시 포맷 한 다음 앱이 완벽하게 작동합니다. 헌신 해줘서 고마워.

전화 : 샤오 미 미 5 OS : 안드로이드 6.0