Android8.0 Intent 브로드캐스트 및 시작 서비스 변경 사항

2655 단어
안드로이드 앱 개발을 배울 때 앵무새 튜토리얼에서 방송 및 서비스 시작에 관한 코드를 본다
서비스 시작
Intent it1 = new Intent("com.test.intentservice");  
startService(it1);  

브로드캐스트 보내기(AndroidManifest의 정적 등록 Receiver)
 sendBroadcast(new Intent("com.example.broadcasttest.MY_BROADCAST"));

자기가 쓴 대로 실행하니 아무런 효과가 없었지만 잘못 보고하지 않았다.조사를 통해 채소새 강좌의 저자는 이전 버전을 사용했을 것이고 나는 안드로이드 8.0을 사용했다
작성자는 암시적 intent(암시적 방송)를 사용하고 안드로이드 매니페스트에 정적 등록
Android O에 대한 응용 프로그램은 Manifest 목록에서 자신의 스텔스 방송 등록을 위한 방송 수신기를 계속 사용할 수 없습니다
그래서 현식 intent(또는 동적 등록 스텔스 방송 수신기)를 사용해야 한다.
Intent(Context, Class)

이렇게
//      Intent,Android8.0     Broadcast                   
Intent intent = new Intent(new Intent(MainActivity.this,MyBroadcastReceiver.class));
intent.setAction("com.example.broadcasttest.MY_BROADCAST");
sendBroadcast(intent);
Intent it1 = new Intent(this,TestService.class);

그리고 setaction() 방법으로 조작을 설정하면 됩니다.

좋은 웹페이지 즐겨찾기