我找不到令人满意的答案,所以我们在这里:有什么处理Activity/Service.getApplication()和Context.getApplicationContext()?
在我们的应用程序中,都返回相同的对象.ActivityTestCase然而,在一个getApplication()模拟应用程序将使用模拟getApplicationContext返回,但仍将返回一个不同的上下文实例(一个由Android注入).那是一个错误吗?这是故意的吗?
我甚至不了解首先的区别.测试套件外是否存在两个呼叫可能带有不同对象的情况?何时以及为何?此外,为什么getApplication定义上Activity和Service,但不是Context?不应该随处可用的有效应用程序实例吗?
也许这很容易,但到目前为止,我BroadcastReceiver还是无法解决这个问题......我等待被AlarmMangager触发 - 这很好用.
现在:因为事件,如果它发生,需要刷新主Activity的屏幕上的一些元素,我想从该背景BroadcastReceiver向我的Activity发送一个Intent - 但前提是它当前在前台,也就是活动.
如果它没有运行或不可见,我不在乎 - 我想做的最后一件事是按照我的意图启动Activity!我在onResume()方法中处理重新绘制视图,所以我根本不关心.
有关如何做到这一点的任何提示?谢谢!
编辑:我的BroadcastReceiver正在等待必须通知用户的警报.所以,它必须在那里并在清单中声明.问题是:它必须决定所提到的活动当前是否在前面.
我有一个带有启动画面活动的应用程序,后跟一个主要活动.启动主屏幕之前,启动画面会加载内容(数据库等).通过此主Activity,用户可以导航到多个其他子活动并返回.一些子活动开始使用startActivityForResult(),其他只是startActivity().
活动层次结构如下所示.
| Child A (startActivityForResult)
| /
|--> Splash --> Main -- Child B (startActivityForResult)
| ^ \
| | Child C (startActivity)
| \
| This Activity is currently skipped if a Notification is started
| while the app is not running or in the background.
Run Code Online (Sandbox Code Playgroud)
单击通知时,我需要实现以下行为:
startActivityForResult(),我需要在返回主活动之前将数据添加到Intent,以便它可以正确捕获结果.startActivity()我只需要返回,因为没有别的事情要做(这当前有效).我已经在SO和其他地方尝试过很多不同的建议,但是我无法成功地获得上述行为.我也试过阅读文档而不是变得更加明智,只是一点点.单击我的通知时上述案例的当前情况是:
onNewIntent().如果应用程序未运行(或在后台运行),我不会到达此处.这似乎是预期和期望的行为.setResult()这些活动.我该怎么做?onCreate() …我需要一种方法来确定活动是活动的还是在背景中.我有一个通知用户的服务,但我想只在活动处于非活动状态时才这样做.我可能会使用全局变量,例如在onStop()中设置它们,但还有其他方法吗?
我如何获得当前正在运行的应用程序?
我想检查应用程序是否正在运行.我使用了以下代码.
ActivityManager activityManager =
(ActivityManager)
this.getSystemService(ACTIVITY_SERVICE );
PackageManager pm =getPackageManager();
procInfos = activityManager.getRunningAppProcesses();
Run Code Online (Sandbox Code Playgroud)
但即使我按下主屏幕上的按钮,它也会返回几个应用程序列表.正在运行的应用列表仍在列表中显示它们.但我希望该列表仅显示前台的应用程序.
那么,如何区分前台和后台运行的应用程序?
或者换句话说,如何检测当前前台运行的应用程序,或者未被销毁的应用程序.我不想让后台运行应用程序.
我决定在一篇文章中发布两个问题,因为这是完全相同的问题.
我需要知道屏幕何时开启或关闭,以便我可以转动LED.第二个我需要知道我的应用程序是在backgorund还是在前台,以便在应用程序处于后台时管理某些动作的发送通知.
我有一个android应用程序,我需要一个功能或任何广播接收器,可以检查应用程序是否关闭。.我不需要在每个活动中调用destroy(该应用程序中大约有20个活动)应用程序类中的功能
public class ApplicationLifeCycleManager implements ActivityLifecycleCallbacks {
/** Manages the state of opened vs closed activities, should be 0 or 1.
* It will be 2 if this value is checked between activity B onStart() and
* activity A onStop().
* It could be greater if the top activities are not fullscreen or have
* transparent backgrounds.
*/
private static int visibleActivityCount = 0;
/** Manages the state of opened vs closed activities, should be 0 or 1 …Run Code Online (Sandbox Code Playgroud) android android-lifecycle android-activity android-activitymanager