문제

나는 링크에서만 출시 될 활동을 만들었습니다 (의도 필터를 사용하여)이 활동에 GUI를 갖기를 원하지 않습니다. 단지 서비스를 시작하고 막대에 알림을 넣기를 원합니다. 서비스에 링크에 대한 의도 필터를 넣으려고했지만 작동하지 않습니다. 의도 필터에 대답 할 더 좋은 일이 있습니까? 아니면 내 활동 만 GUI가 없도록 만들 수 있습니까?
혼란 스럽다면 죄송합니다, Isaac

도움이 되었습니까?

해결책

최선의 방법은 사용하는 것 같습니다 BroadcastReceiver. 알림을 트리거하고 다음과 같이 서비스를 시작하려는 의도를 듣는 새로운 Broadcastreceiver를 만들 수 있습니다.

public class MyIntentReceiver extends BroadcastReceiver {    
  @Override 
  public void onReceive(Context _context, Intent _intent) {
    if (_intent.getAction().equals(MY_INTENT)) {
      // TODO Broadcast a notification
      _context.startService(new Intent(_context, MyService.class));
    }
  }    
}

또한 활동 내에 포함 할 필요 없이이 Intentreceiver를 응용 프로그램에 직접 등록 할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.domain.myapplication">
  <application android:icon="@drawable/icon" android:label="@string/app_name">
    <service android:enabled="true" android:name="MyService"></service>
    <receiver android:enabled="true" android:name="MyIntentReceiver">
      <intent-filter>
        <action android:name="MY_INTENT" />
      </intent-filter>
    </receiver>
  </application>
</manifest> 

다른 팁

이전 응답에 반향하면 방송 수신기를 사용해서는 안됩니다.

같은 상황에서 내가 한 일은 주제를 다음과 같이 선언하는 것이 었습니다.

<activity android:name="MyActivity"
          android:label="@string/app_name"
          android:theme="@android:style/Theme.NoDisplay">

서비스가 작동하는지 확실하지 않지만 방송 수신기는 확실히 그렇지 않을 것입니다. URL은 startActivity ()를 사용하여 시작됩니다. 방송 수신기는 이에 응답 할 수 없습니다.

http://developer.android.com/reference/android/content/broadcastreceiver.html

FTA : 의도 클래스는 이러한 방송을 보내고 수신하는 데 사용되지만, 의도 방송 메커니즘은 컨텍스트로 활동을 시작하는 데 사용되는 의도와 완전히 분리되어 있습니다. Broadcastreceiver가 startActivity ()와 함께 사용되는 의도를 보거나 캡처 할 수있는 방법은 없습니다. 마찬가지로, 의도를 방송 할 때는 활동을 찾거나 시작하지 않습니다.

서비스 사용. 나는 확실히 일한다. 프로그램을 클릭하면 GUI없이 작업을 수행합니다. pendintgintent ... getService (myserice.class ....)를 사용하십시오. 그런 다음 서비스 클래스를 확장하는 새 클래스 MyService를 만듭니다. myservice.class에서 onstart ()를 재정의하고 원하는 모든 것을 수행하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top