StackOverfow にも同様の質問がたくさんありますが、私の問題は解決しません。
タスクは、さまざまなアプリケーションからデフォルトの共有メカニズム (ACTION_SEND) で送信された Service インテントを処理することです。
しかし、アクティビティ アクションである限りACTION_SEND
、アクティビティのインテントを取得し、それをサービスにブロードキャストする必要があります。そして、このアクティビティがユーザーに見えないようになれば完璧です。
私は多くのことを研究し、すでに多くの解決策を試してきました。
アクティビティを非表示にする最初のステップは、アクティビティ スタイルに属します。
私はこの値を試しました。
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>
活動コード。いいえ
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では、共有イベントの処理中に黒い画面が点滅します。
解決策はありますか?