다른 애플리케이션을 사용해야합니다. 첫 번째 애플리케이션에는 백그라운드 서비스가 있습니다. 두 번째 응용 프로그램은 textview로 활동합니다. 질문 : 첫 번째 앱의 서비스를 사용하여 두 번째 앱 실행을 감지하려면 어떻게해야합니까? 그리고 textview의 텍스트를 서비스에서 어떻게 변경합니까?Android : 다른 애플리케이션의 텍스트 뷰를 변경하는 방법
감사합니다.
다른 애플리케이션을 사용해야합니다. 첫 번째 애플리케이션에는 백그라운드 서비스가 있습니다. 두 번째 응용 프로그램은 textview로 활동합니다. 질문 : 첫 번째 앱의 서비스를 사용하여 두 번째 앱 실행을 감지하려면 어떻게해야합니까? 그리고 textview의 텍스트를 서비스에서 어떻게 변경합니까?Android : 다른 애플리케이션의 텍스트 뷰를 변경하는 방법
감사합니다.
해당 방송 수신자를 사용하여 다른 응용 프로그램을 업데이트하십시오.
서비스를 사용하는 경우 다른 응용 프로그램의 GUI를 업데이트하지 않습니다. broadcastreceiver가 원하는대로하는 것이 가장 좋습니다.
다른 응용 프로그램에서 실행을 감지 할 수 없으며 다른 응용 프로그램의 TextView를 직접 변경할 수 없습니다.
하지만 협력을 통해이를 달성 할 수 있습니다. 두 번째 응용 프로그램은 서비스 시작에 대해 알리고 서비스는 첫 번째 활동에 TextView 변경을 요청할 수 있습니다.
이것은 의도로 달성 할 수 있습니다. 첫 번째 애플리케이션의 액티비티는 서비스가 시작될 때 서비스를 시작할 수 있으며, 서비스는 브로드 캐스트를 보내거나 액티비티에 직접 보내어 TextView를 수정하도록 요청할 수 있습니다.
활동이 실행될 때만 알리고 이전 예제에서와 같이 깨우지 않으려면 바운드 서비스에 대해 this link을 읽으십시오. 여기서는 서비스에 바인딩하는 방법에 대한 완전한 예제를 제공하고 요청을 Activity로 되돌려 보내는 방법을 설명합니다.
이 예에서는 서비스가 클라이언트의 에 어떻게 응답 할 수 있는지 보여주지 않습니다. 서비스에서 응답하려면 클라이언트에 메신저를 만들어야합니다. 그런 다음 클라이언트가 onServiceConnected() 콜백을 받으면 메소드의 replyTo 매개 변수에 에 클라이언트의 메신저가 포함 된 서비스로 메시지를 보냅니다.
응용 프로그램은 다른 응용 프로그램에서 사용할 수없는 윈도우 토큰을 통해 바인딩되며, 백그라운드 서비스에 의도를 던지고 두 번째 응용 프로그램에서 브로드 캐스트 수신기를 통해이를 잡아 내고 변경할 텍스트를 전달합니다 번들을 통한 의도 – Tobrun