4

StackOverfow にも同様の質問がたくさんありますが、私の問題は解決しません。

タスクは、さまざまなアプリケーションからデフォルトの共有メカニズム (ACTION_SEND) で送信された Service インテントを処理することです。
しかし、アクティビティ アクションである限りACTION_SEND、アクティビティのインテントを取得し、それをサービスにブロードキャストする必要があります。そして、このアクティビティがユーザーに見えないようになれば完璧です。

私は多くのことを研究し、すでに多くの解決策を試してきました。

  1. アクティビティを非表示にする最初のステップは、アクティビティ スタイルに属します。

    私はこの値を試しました。

    android:theme="@android:style/Theme.Translucent.NoTitleBar"

    android:theme="@android:style/Theme.Translucent"

    android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"

    また、カスタムテーマを作成しようとしました。

    <style name="Theme.Transparent" parent="android:Theme">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:backgroundDimEnabled">true</item>
    </style>
    

    AndroidManifest.xml のアクティビティがどのように見えるか。

    <activity
        android:name="xxx.xxx.activities.HandleShareIntentActivity"
        android:theme="@style/Theme.Transparent"
        android:noHistory="true"
        android:excludeFromRecents="true"
        android:label="@string/title_activity_handle_share_intent">
       <intent-filter>
           <action android:name="com.google.android.gm.action.AUTO_SEND"/>
           <action android:name="android.intent.action.SEND"/>
           <action android:name="android.intent.action.SEND_MULTIPLE"/>
           <category android:name="android.intent.category.DEFAULT"/>
           <category android:name="com.google.android.voicesearch.SELF_NOTE"/>
           <data android:mimeType="*/*"/>
       </intent-filter>
    </activity>
    
  2. 活動コード。いいえsetContentView()finish()onCreate()

    public class HandleShareIntentActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            startService(new Intent(this, xxxService.class).putExtra(
            Constants.ACTION_SHARE_KEY, getIntent()));
    
            finish();
        }  
     }
    

Nexus 5、Android 4.4.4では、共有イベントの処理中に黒い画面が点滅します。
解決策はありますか?

4

2 に答える 2

3

私はこの値を試しました。

を使用しTheme.NoDisplayます。

于 2014-12-04T13:34:33.537 に答える