質問

私は唯一のリンクから起動されることを意図して活動作成している私は、この活動は、GUIを持っている必要はありません(インテントフィルタを使用する。) - 私はちょうどそれがサービスを開始し、中に通知を入れたいですバー。私は私のサービス内のリンクのためのインテントフィルタを入れて試してみましたが、それは動作しません。インテントフィルタにお答えしますこれを行うには良いものがある - ?または私はちょうど私の活動は、GUIを持たないことができますが
申し訳ありませんが、私は混乱しているんだ場合、アイザック

役に立ちましたか?

解決

あなたの最善の策は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> 

他のヒント

前の応答をエコー、あなたは、放送受信機を使用しないでください。

同じような状況では、私がやったことはthuslyテーマを宣言した

<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: インテントクラスがこれらのブロードキャストを送信および受信するために使用されるが、ここでの意図放送機構)Context.startActivity(で活動を開始するために使用されるインテントから完全に独立であることに留意されたいです。 )BroadcastReceiverが(参照するか、startActivityで使用するキャプチャーインテントする方法はありません。あなたがテントをブロードキャストする場合も同様に、あなたが見つけていないか、活動を開始決してます。

を使用するサービス。私は間違いなく動作します。あなたがプログラムをクリックすると、それはどんなGUIなしでその作業を行うだろう。 (.... MySerice.class)pendintgintent ...のgetServiceを使用してください。次に、サービスクラスを拡張する新しいクラスを作成しますMyServiceで。 MyService.classの内部では、(ONSTART上書き)と、あなたがやりたいものは何でも。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top