gpt4 book ai didi

android - 确定我的应用程序是否在前台

转载 作者:行者123 更新时间:2023-11-30 01:31:16 24 4
gpt4 key购买 nike

我有一个 IntentService,它每小时从服务器刷新一次数据(无推送通知)。如果有任何新数据,它应该在应用程序内部更新界面或在我的应用程序不在前台时发送通知。我的问题是:如果我的应用程序在前台运行,我如何确定哪个应用程序在前台运行或者更容易?我不需要知道什么 Activity 就是我的应用程序的通用包名就完全没问题了!

到目前为止我发现的两件事我反对使用:

  1. ActivityManager.getRunningTasks() - 它已被弃用,正如 Google 所提到的,它可能会在未来中断
  2. UsageStats - 看起来不错,但如果用户必须授予我的应用程序 UsageStats 权限,那真的很不方便。

我有点困惑,为什么我找不到解决方案。我认为这不是不寻常的做法或其他什么。

谢谢!

最佳答案

你可以用简单的方法解决你的问题,但这对你自己的包和服务有效

1 : 在你的主 Activity 中定义 bool 变量
2:在主 Activity 的 onCreate 方法中将变量的值更改为 true
3: 在 Ondestroy metheo 中将其更改为 false

public class MainActivity extends AppCompatActivity {
public static boolean appStatus = false;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

appStatus = true;//fill the variable true : app is running
setContentView(R.layout.activity_main);

}


@Override
protected void onDestroy() {
super.onDestroy();//fill the variable false : app is not running
appStatus = false;
}

4:在你的服务中你可以随处查看

    if(MainActivity.appStatus )
{
......yourCode
}

关于android - 确定我的应用程序是否在前台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35727084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com