이 프로젝트에 Receiver 추가 실행 서비스에 수신기를 등록 할 수 있습니다 그리고 당신은 당신의 응용 프로그램을 시작하지 않고이 이벤트를 얻을 것이다. 이 같은 수신기를 사용하면 어떤 레지스터를 호출 할 정도의 등록을 취소 항상 의지하지 않는
<receiver android:name="TestReciver" >
<intent-filter >
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
:
public class TestReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("TestReciver",intent.getAction()+"\n"
+intent.getDataString()+"\n"
+"UID: "+intent.getIntExtra(Intent.EXTRA_UID,0)+"\n"
+"DATA_REMOVED: "+intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false)+"\n"
+"REPLACING: "+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)
);
}
}
및 매니페스트에서
는 (당신의 < 응용 프로그램 > 태그 내부)과 같이 추가 데이터를 가져올 준비를하십시오.
사용자가 앱을 SD 카드로 이동할 수있게하면이 기능이 작동하지 않습니다. SD 카드가 마운트 해제 될 때 이벤트가 전송되면 수신자는 액세스 할 수 없으므로 이벤트를 놓치게됩니다.
현재 등록 된 수신자가 현재 일시 중지 된 활동 내에있는 매니페스트에 등록되어 있으면 해당 수신 활동의 개인 변수에 액세스 할 수 있습니까? – Peterdk
이제는 Receiver 클래스가 인터페이스는 아니지만 상속해야하는 클래스라는 것을 알았습니다. – Peterdk
@chris, 안드로이드 문서에이 문서가 보이지 않습니다. –