如何从 "Share" 选项在后台执行 service/activity?

How to execute service/activity in background from "Share" option?

我们有一个 android 应用程序,它没有出现在菜单中,打开它的唯一方法是 "sharing" 资源。 我需要执行在没有 "seeing it" 的情况下发送资源的服务,并在它完成后关闭应用程序,以便用户无论身在何处都可以继续导航。 如何实现?

PD:另一个有效的解决方案是打开一个带有进度条的对话框,然后关闭它。无论如何,我都没有找到解决方案

有可能。

从启动器菜单中隐藏应用程序: 创建一个没有启动器的应用 activity。也就是说,清单中不应使用以下过滤器声明任何 activity。

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

您可能会在 运行 在 device/emulator 上使用此类应用程序时遇到问题,您可以通过更改 运行 配置来解决该问题。这个 post 会在这种情况下帮助你 - https://github.com/android/input-samples/issues/18

正在创建共享图像的对话框: 使用对话框主题

创建图像处理 activity

清单代码:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    >
    <activity android:name=".ImageSharingActivity"
        android:theme="@style/ShareAppTheme">
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.SEND" />
            <data android:mimeType="*/*" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

Style.xml代码

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

 <!-- Dialog theme for sharing activity -->
<style name="ShareAppTheme" parent="Theme.AppCompat.Dialog">
</style>

您可以在 ImageSharingActivity 上处理您的共享逻辑。