Android 打开共享操作上的不可见活动(操作\u发送)

Android 打开共享操作上的不可见活动(操作\u发送),android,android-intent,android-activity,android-sharing,Android,Android Intent,Android Activity,Android Sharing,在StackOverfow上有很多类似的问题,但它们不能解决我的问题 任务是处理使用默认共享机制(ACTION_SEND)从不同应用程序发送的服务内意图。 但只要动作\u SEND是一个活动动作,我们就必须在活动中获取意图并将其广播给服务部门。如果这个活动对用户来说是不可见的,那就太完美了 我已经做了很多研究,尝试了很多解决方案 使活动隐形的第一步属于活动样式 我试过这个方法 android:theme=“@android:style/theme.transparent.NoTitleBar”

在StackOverfow上有很多类似的问题,但它们不能解决我的问题

任务是处理使用默认共享机制(ACTION_SEND)从不同应用程序发送的服务内意图。
但只要
动作\u SEND
是一个活动动作,我们就必须在活动中获取意图并将其广播给服务部门。如果这个活动对用户来说是不可见的,那就太完美了

我已经做了很多研究,尝试了很多解决方案

  • 使活动隐形的第一步属于活动样式

    我试过这个方法

    android:theme=“@android:style/theme.transparent.NoTitleBar”

    android:theme=“@android:style/theme.Translucent”

    android:theme=“@android:style/theme.transparent.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>
    
  • 在Nexus 5上,android 4.4.4我在处理任何共享事件时都会出现黑屏闪烁。
    有什么解决方案吗?

    我试过这个方法


    使用
    Theme.NoDisplay
    我刚刚做了这个,它对我的情况很有帮助:

    <activity
        android:name=".SensorBoardActivity"
        android:theme="@android:style/Theme.NoDisplay"
        android:excludeFromRecents="true"
        android:noHistory="true">
    
    
    

    我看到您已经有了
    finish();
    ,但是对于其他人来说,在离开
    onCreate()之前执行它是很重要的

    在共享操作上仍会以黑屏闪烁。但是,当我处理UsbManager.action\u USB\u设备连接的事件时,Theme.NoDisplay对我有效。活动不可见且不闪烁。他们正在做同样的事情-发送服务意图并完成。但是对于共享操作Theme.NoDisplay对我无效。有什么建议吗?@nicolAuyes:因为我从未见过
    主题。NoDisplay
    打开一个窗口(即“黑屏闪烁”),我不知道该告诉你什么。演示问题的非常短的视频-活动确实有
    主题。NoDisplay
    样式。即使我在这个活动中什么都不做(仅
    完成()
    调用),它也会“闪烁”“也是。我想知道这是否与选择器有关,因为这是两种方案的区别之一。尝试手动调用您的
    操作\u SEND
    主题。NoDisplay
    活动并查看发生了什么。如果它的行为符合您的要求,那么您的问题实际上在于选择器,也许切换到
    ShareActionProvider
    会给您带来更好的结果。如果你仍然出现黑屏闪烁,那么它必须与你的活动设置有关(例如,自定义主题更改)。我已经尝试了你的建议。首先,我手动调用了
    ACTION\u SEND
    Theme.NoDisplay
    activity,它的行为符合预期。它是隐形的,我看不到任何闪烁。我认为问题出在选择器上,因为有时如果我按下“共享”,然后按下“返回”按钮,它会以黑色闪烁(请查看此示例)。但当我与几乎任何其他应用程序共享内容时(但不是所有应用程序,请查看此示例),它不会闪烁。也许他们知道如何处理这种情况?可能是什么?
    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();
        }  
     }
    
    <activity
        android:name=".SensorBoardActivity"
        android:theme="@android:style/Theme.NoDisplay"
        android:excludeFromRecents="true"
        android:noHistory="true">