我创建了一个应用程序,使用户可以设置在应用程序以后台模式运行时是否要接收通知。如果启用了通知,则应启动活动(对话框应出现在屏幕上)。
我尝试通过以下方式启用它:
@Override
public void onProductsResponse(List<Product> products) {
this.products = products;
moboolo.setProducts(products);
if(moboolo.getAutomaticNotificationsMode() != 0 && products.size() > 0){
if(isRunningInBackground)
{
Intent intent = new Intent(this, ProductListActivity.class);
intent.setAction(Intent.ACTION_MAIN);
startActivity(intent);
}
}
drawProducts(products);
}
这是主要活动中的方法。执行onPause()时,将isRunningInBackground设置为true。当我尝试调试它时,主应用程序在后台运行
startActivity(intent)无效(活动未出现)。
当主活动在后台运行时(在调用onPause()之后),有人知道如何使逻辑从主活动开始进行逻辑调节吗?
谢谢。
您不能强制Activity从运行后台的应用程序中显示。 该文件说:
如果应用程序在后台运行并且需要用户注意,则该应用程序应创建一个通知,允许用户在其方便时做出响应。
如果您Activity暂停了操作,则用户可能正在其他应用程序中执行其他操作,并且可能不希望您Activity突然出现在他们当前正在执行的操作中。
您应该使用状态栏通知。这使您的应用程序可以在状态栏中放置一个图标。然后,用户可以向下滑动状态栏抽屉,然后单击您的通知以打开您的应用程序并显示相关信息Activity。这是绝大多数Android应用程序在后台运行时通知用户的方式。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。