问题标签 [android-activitymanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Activity 如何创建窗口来设置布局
我想知道活动如何创建默认窗口来安排 android 中的视图。setContentView 将 xml 传递给默认创建为窗口的活动并安排视图,但我不知道这是如何完成的。任何代码流或文档都会有所帮助。提前致谢。
android - isActivityStartAllowedOnDisplay() 方法
我正在尝试在辅助显示器上启动第二个活动。这在模拟器上运行良好,但我需要辅助显示器来处理触摸事件。
使用 Android Pie,在第二个显示器上启动活动会引发安全异常。Google 最近推出了适用于 Android Q 的新 API - isActivityStartAllowedOnDisplay() ( https://developer.android.com/reference/android/app/ActivityManager.html#isActivityStartAllowedOnDisplay(android.content.Context,%2520int,%2520android.content .Intent) ) - 能够判断第二个显示器是否有此安全异常。
这个新的 API 很有帮助,但是,有什么办法可以解决吗?也许我误解了文档,但似乎如果设备不支持它,那么就没有办法解决它。有谁知道任何不会引发此安全异常的显示器?
android - 检索启动意图的堆栈跟踪
我有一个在 Android 上运行的 React Native 应用程序,并使用了我最近添加的一些库。现在,每当我关闭应用程序时,应用程序都会在几秒钟后不断地重新打开,而不会通过后台堆栈完全杀死它。
Logcat 正在打印一个无限循环的命令,这些命令在关闭应用程序时暂时挂起,然后在应用程序再次启动时恢复,包括这个不断重复的行:
我试图找出是什么导致这个意图被一遍又一遍地创建。uid10182
是我的应用程序的。
我怎样才能了解更多/找到启动它的命令?有没有办法为这个特定的 ActivityManager 日志获取堆栈跟踪?或者你将如何调试这个?
这是无限重复的日志:
08-21 14:34:24.823 776 3589 I ActivityManager: 从 uid 10182 开始 u0 {flg=0x10200000 cmp=app.coffeechat/.MainActivity (has extras)} 显示 0
08-21 14:34:24.832 31551 31551 D ReactNativeNotifs: onHostResume
08-21 14:34:24.832 31551 31551 D ReactNativeNotifs:应用程序现在可见
08-21 14:34:24.833 31551 31619 I ReactNativeJS:[CodePush] 同步已经在进行中。
08-21 14:34:24.838 31551 31551 D ReactNativeNotifs: onHostPause
08-21 14:34:24.838 31551 31551 D ReactNativeNotifs:应用程序现在不可见
08-21 14:34:24.823 776 3589 I ActivityManager: 从 uid 10182 开始 u0 {flg=0x10200000 cmp=app.coffeechat/.MainActivity (has extras)} 显示 0
08-21 14:34:24.832 31551 31551 D ReactNativeNotifs: onHostResume
08-21 14:34:24.832 31551 31551 D ReactNativeNotifs:应用程序现在可见
08-21 14:34:24.833 31551 31619 I ReactNativeJS:[CodePush] 同步已经在进行中。
08-21 14:34:24.838 31551 31551 D ReactNativeNotifs: onHostPause
08-21 14:34:24.838 31551 31551 D ReactNativeNotifs:应用程序现在不可见
等等。
android - 在这种情况下,为什么android会杀死将光标放在另一个进程上的内容提供者上的客户端进程?
我的应用程序在 Process1 中运行,我正在使用由另一个在 Process2 下运行的应用程序提供的内容提供程序。当 Process2 终止时,它会导致在 Process1 下运行的我的应用程序被终止。
我在 SO中遇到了这个很好的答案,它基本上解释了当我们对内容提供者进行内容观察者与查询时会发生什么。
但我不清楚为什么甚至 android 会杀死整个过程。为什么这不能在应用程序级别处理,在DeadObjectException
与运行在其他进程上的绑定服务交互时,我们面临类似的帮助,并且它出现故障。
我同意 Android 在获取的帮助下提供了处理此问题的替代方法,unstableContentProviderClient
但我不相信他们为什么需要终止客户端进程?我很担心,因为不仅内容提供程序查询源将在进程中运行 - 该进程中还可能运行其他逻辑。为什么框架会杀死应用程序并重新启动它?
android - SingleTask 活动在同一个进程中被多次创建
我有一个启动器应用程序,它有一个singleTask
活动作为主要入口点。当用户导航到另一个活动或第 3 方应用程序然后点击主页按钮时,应该将此活动带到最前面。但是我的经验是,仅对于第一次按下主页按钮,会创建另一个实例(创建一个新任务,onCreate()
被调用)。与此同时,旧任务仍然存在,包含此活动的原始实例,但无法导航回该任务/活动或将其带到前台。
在第一次按下主页按钮后,下一次按下主页按钮会将这个活动的第二个实例带到前台。不知道为什么不第一次onNewIntent()
调用第一个实例的方法......所以这只发生一次,之后总是onNewIntent()
调用第二个实例的方法。这意味着原始活动将无法访问..
我试图将任务带到前台,什么都没有发生......就像它从未存在过一样(但任务与活动一起存在,它在任何时候都不会被杀死)。我可以从代码中找到任务,也可以使用 shell 脚本。它包含原始活动
这发生在 Android TV (Os: Pie)上。知道这可能是什么原因吗?我真的不明白这是怎么发生的......顺便说一句,如果我将活动设置为singleInstance
.
活动如下所示:
我尝试交替使用上述属性(priority、excludeFromRecents、taskAffinity),也完全删除了它们,它们没有任何效果......
按下主页按钮会发送以下意图:
- 行动:“android.intent.action.MAIN”
- 类别:“android.intent.category.HOME”
- 组件:上述活动
它还有一些附加功能,但我认为这无关紧要
android - 字段需要 API 级别 29(当前最低为 16):android.app.TaskInfo#topActivity
我试图检查活动是在前台还是后台,所以我使用活动管理器来找到它。当我compileSdkVersion
28 岁时,应用程序编译成功。当我用 29 运行相同的代码时compileSdkVersion
,出现以下错误,
当我设置compileSdkVersion
为 29 时出现此错误。
android - 如何防止 ActivityManager 杀死我的应用程序的后台进程
我正在开发一个在后台运行的移动应用程序。它会每隔一段时间在后台截取屏幕截图,但是一段时间后,ActivityManager 会使用日志终止进程,I/ActivityManager: killing com.example: excessive cpu xxxx during yyyyy dur=zzzzz limit=2
我能做些什么来防止ActivityManager
杀死应用程序?
我使用 LeakCanary 检查内存泄漏,但发现 0 泄漏
我试过:
- minifyEnabled true
- shrinkResources true
- proguardFiles
我正在使用 a每隔一段时间Handler
自动(主要是MediaProjection
和)运行我的程序。ImageReader
在遵循其他问题和谷歌的教程后,我制作了Handler
静态文件,但同样的问题仍然存在。
MainActivity.java
:
android - Android可以在不杀死托管它的活动的情况下杀死Fragment吗?
首先,如果我的问题是假的,我很抱歉,我刚刚开始我的 Android 方式并且无法在 google 中找到我的问题的答案。我想知道Android操作系统是否能够只杀死片段(支持片段)而不杀死持有这个片段的实际活动?感谢您的帮助,如果问题很愚蠢,我们深表歉意!
android - 如何跟踪我的应用程序的 ActivityManager 加载时间?
我想跟踪我的应用启动需要多长时间,但我想跟踪这里定义的这个特定信息:https ://developer.android.com/topic/performance/vitals/launch-time 为了有更好的关于它的图形并向其添加自定义信息。我试过什么?
我试图在onCreate
方法之间添加一个计时器,onResume
但获得的时间是系统“活动管理器:显示”跟踪的时间的一半
我该怎么做才能以编程方式获得这些值?
java - 对于 API 26 +,我如何获取当前在我的设备中运行的所有 android 应用程序?
我尝试使用此代码来获取设备中运行的应用程序:
我想我会得到设备中运行的所有应用程序的名称。相反,我在调试时得到了这个:
[android.app.ActivityManager$RunningAppProcessInfo@ad46c50]
如何获取当前正在运行的所有应用程序的列表?