1

私はバックグラウンドスレッド(サービスアプリ)で実行されるAndroidアプリで作業しています。別のアプリからIntent(ACTION_SEND)を使って別のアプリからデータを受け取りたいアプリがバックグラウンド(サービスアプリ)で実行されているときにインテントを受信

アプリがバックグラウンドスレッドのときにインテントを受け取ることは可能ですか?

答えて

1

私はバックグラウンドスレッド(サービスアプリ)で実行されるAndroidアプリを開発中です。

アプリがバックグラウンドスレッドで実行されません。アプリがのバックグラウンドスレッドを持っている可能性があります。

別のアプリからインテント(ACTION_SEND)を使って別のアプリからデータを受け取りたいとします。

ACTION_SENDはあなたのアクティビティにルーティングされます。あなたの活動は、この時点でバックグラウンドスレッドを含む何かを行うことを歓迎します。アクティビティテーマにTheme.Translucent.NoTitleBarを使用し、finish()onCreate()の中にコールすると、アクティビティにUIがないことがあります。したがって、ユーザーの観点からは、たとえ実際に何が起こっていないとしても、ACTION_SENDがバックグラウンドで処理されているように見えます。

0

"ACTION_SENDインテント"を受け取ったときに開始される、それ自体のGUIを持たないアクティビティを実装することができます。

マニフェスト

<manifest ...> 
    <application ...> 
     <activity android:name=".MyActionSendReceiver"> 

      <intent-filter> 
       <action android:name="android.intent.action.SEND" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.BROWSABLE" /> 

       <!-- file must have mimeType to match --> 
       <data android:mimeType="*/*" /> 
       <data android:scheme="file" /> 
      </intent-filter> 

     </activity> 
    </application> 
</manifest> 

public class MyActionSendReceiver extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     boolean canWrite = SettingsImpl.init(this); 

     Intent mySendIntent = getIntent(); 

     // TODO inform my running background service 

     // no gui has been created. finish this activity 
     this.finish(); 
    } 
} 
:活動は、あなたのランニングバックグラウンドサービスを知らせることができます
関連する問題