开发者社区> 问答> 正文

当主要活动在后台运行时如何启动活动?

我创建了一个应用程序,使用户可以设置在应用程序以后台模式运行时是否要接收通知。如果启用了通知,则应启动活动(对话框应出现在屏幕上)。

我尝试通过以下方式启用它:


@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()之后),有人知道如何使逻辑从主活动开始进行逻辑调节吗?

谢谢。

展开
收起
Puppet 2020-01-24 16:01:28 638 0
1 条回答
写回答
取消 提交回答
  • 您不能强制Activity从运行后台的应用程序中显示。 该文件说:

    如果应用程序在后台运行并且需要用户注意,则该应用程序应创建一个通知,允许用户在其方便时做出响应。

    如果您Activity暂停了操作,则用户可能正在其他应用程序中执行其他操作,并且可能不希望您Activity突然出现在他们当前正在执行的操作中。

    您应该使用状态栏通知。这使您的应用程序可以在状态栏中放置一个图标。然后,用户可以向下滑动状态栏抽屉,然后单击您的通知以打开您的应用程序并显示相关信息Activity。这是绝大多数Android应用程序在后台运行时通知用户的方式。

    2020-01-24 16:02:01
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载