StackOverfow上有很多类似的问题,但它们无法解决我的问题。
任务是使用来自不同应用程序的默认共享机制(ACTION_SEND)发送的服务意图进行处理
但就ACTION_SEND
是一项活动行动而言,我们必须在活动中获取意图并将其广播给服务。如果用户看不到此活动,那将是完美的。
我已经研究了很多,并且已经尝试了很多解决方案。
使活动不可见的第一步属于活动风格。
我尝试过这个值。
android:theme =“@ android:style / Theme.Translucent.NoTitleBar”
机器人:主题= “@机器人:风格/ Theme.Translucent”
机器人:主题= “@机器人:风格/ 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我在处理任何共享事件时都会出现黑屏闪烁 任何解决方案?
答案 0 :(得分:3)
我已尝试过这个值。
使用Theme.NoDisplay
。
答案 1 :(得分:0)
我刚刚这样做了,在我的案例中它有所帮助:
<activity
android:name=".SensorBoardActivity"
android:theme="@android:style/Theme.NoDisplay"
android:excludeFromRecents="true"
android:noHistory="true">
我发现您已经拥有finish();
但是只有其他人才能在离开onCreate()
之前执行它。