相关疑难解决方法(0)

getApplication()与getApplicationContext()

我找不到令人满意的答案,所以我们在这里:有什么处理Activity/Service.getApplication()Context.getApplicationContext()

在我们的应用程序中,都返回相同的对象.ActivityTestCase然而,在一个getApplication()模拟应用程序将使用模拟getApplicationContext返回,但仍将返回一个不同的上下文实例(一个由Android注入).那是一个错误吗?这是故意的吗?

我甚至不了解首先的区别.测试套件外是否存在两个呼叫可能带有不同对象的情况?何时以及为何?此外,为什么getApplication定义上ActivityService,但不是Context?不应该随处可用的有效应用程序实例吗?

android android-service android-context android-activity

407
推荐指数
3
解决办法
30万
查看次数

检查Android应用程序是否在后台运行

根据背景,我的意思是用户目前看不到应用程序的任何活动?

android

308
推荐指数
10
解决办法
20万
查看次数

仅当BroadcastReceiver位于前台时才通知它

也许这很容易,但到目前为止,我BroadcastReceiver还是无法解决这个问题......我等待被AlarmMangager触发 - 这很好用.

现在:因为事件,如果它发生,需要刷新主Activity的屏幕上的一些元素,我想从该背景BroadcastReceiver向我的Activity发送一个Intent - 但前提是它当前在前台,也就是活动.

如果它没有运行或不可见,我不在乎 - 我想做的最后一件事是按照我的意图启动Activity!我在onResume()方法中处理重新绘制视图,所以我根本不关心.

有关如何做到这一点的任何提示?谢谢!

编辑:我的BroadcastReceiver正在等待必须通知用户的警报.所以,它必须在那里并在清单中声明.问题是:它必须决定所提到的活动当前是否在前面.

android broadcastreceiver

23
推荐指数
2
解决办法
2万
查看次数

无论应用状态如何,都可以从通知中正确启动活动

我有一个带有启动画面活动的应用程序,后跟一个主要活动.启动主屏幕之前,启动画面会加载内容(数据库等).通过此主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)

单击通知时,我需要实现以下行为:

  1. 必须维护活动中的状态,因为用户已选择一些配方来创建购物清单.如果新的活动开始,我相信州将会丢失.
  2. 如果应用程序位于主活动中,请将其放在前面,并通过我从通知到达的代码告诉我.
  3. 如果应用程序位于子活动开始时startActivityForResult(),我需要在返回主活动之前将数据添加到Intent,以便它可以正确捕获结果.
  4. 如果应用程序在一个子活动开始,startActivity()我只需要返回,因为没有别的事情要做(这当前有效).
  5. 如果应用程序不在后台,也不在前台(即它没有运行),我必须启动主要活动并且还知道我是从通知到达的,这样我就可以设置尚未设置的内容,因为在我的当前设置中,在这种情况下会跳过Splash Activity.

我已经在SO和其他地方尝试过很多不同的建议,但是我无法成功地获得上述行为.我也试过阅读文档而不是变得更加明智,只是一点点.单击我的通知时上述案例的当前情况是:

  1. 我到达了主要活动onNewIntent().如果应用程序未运行(或在后台运行),我不会到达此处.这似乎是预期和期望的行为.
  2. 我无法发现我在任何儿童活动中都来自通知,因此我无法正确地调用setResult()这些活动.我该怎么做?
  3. 这当前有效,因为通知只关闭子Activity,这没关系.
  4. 我可以通过在通知中onCreate() …

notifications android android-intent onactivityresult

11
推荐指数
1
解决办法
4792
查看次数

仅在活动处于后台时发送通知

我需要一种方法来确定活动是活动的还是在背景中.我有一个通知用户的服务,但我想只在活动处于非活动状态时才这样做.我可能会使用全局变量,例如在onStop()中设置它们,但还有其他方法吗?

android

3
推荐指数
1
解决办法
1916
查看次数

获取当前运行的应用程

我如何获得当前正在运行的应用程序?

我想检查应用程序是否正在运行.我使用了以下代码.

       ActivityManager activityManager =
       (ActivityManager)
       this.getSystemService(ACTIVITY_SERVICE );

   PackageManager pm =getPackageManager();
   procInfos = activityManager.getRunningAppProcesses();
Run Code Online (Sandbox Code Playgroud)

但即使我按下主屏幕上的按钮,它也会返回几个应用程序列表.正在运行的应用列表仍在列表中显示它们.但我希望该列表仅显示前台的应用程序.

那么,如何区分前台和后台运行的应用程序?

或者换句话说,如何检测当前前台运行的应用程序,或者未被销毁的应用程序.我不想让后台运行应用程序.

android detect foreground

3
推荐指数
1
解决办法
4529
查看次数

如果屏幕开启/关闭以及应用程序是否在后台/前景中

我决定在一篇文章中发布两个问题,因为这是完全相同的问题.

我需要知道屏幕何时开启或关闭,以便我可以转动LED.第二个我需要知道我的应用程序是在backgorund还是在前台,以便在应用程序处于后台时管理某些动作的发送通知.

android background screen

1
推荐指数
1
解决办法
9039
查看次数

Android检查应用程序是否关闭

我有一个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

0
推荐指数
3
解决办法
6298
查看次数