我有一个接收推送通知的BroadcastReceiver, 然后我开始一项活动并显示通知。 (请注意,当用户操作通知时,活动不会启动)
我的目的是在"背景模式"中开始活动。然后当用户响应通知时将活动带到前面。
除了活动简要显示然后,所有工作都完美无缺 立即隐藏。 (闪烁活动一秒钟)。
这是我的代码:
BroadcastReceiver...
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("BACKGROUND",true);
context.startActivity(intent);
MainActivity.....
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getBooleanExtra("BACKGROUND",false)) {
moveTaskToBack(true);
} else {
}
答案 0 :(得分:2)
有同样的问题。通过在主题中添加android:windowDisablePreview
属性来解决此问题。
例如,在res/values/styles.xml
:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:windowDisablePreview">true</item>
</style>
</resources>
不确定是否有任何方式以编程方式添加它。
答案 1 :(得分:0)
有同样的问题。
通过启动服务来解决该问题,然后在需要时打开“活动”。这是推荐的方法。