我的问题:请问我用检索processName或packageName某个进程的给予其PID?
因为在我的任务管理器中我想使用PID同时使用killBackgroundProcesses代码来终止进程.问题是我需要packageName/processName来做这件事,如果我让他们输入processName而不是只输入它的PID,那对用户来说会很麻烦.
这是我的任务经理的形象:

在我的应用程序中,我有本地服务,它需要在单独的进程中运行。它被指定为
<service android:name=".MyService" android:process=":myservice"></service>
Run Code Online (Sandbox Code Playgroud)
在 AndroidManifest.xml 中。我还对 Application 对象进行子类化,并希望在其 onCreate 方法中检测何时由普通启动调用以及何时由 myservice 启动调用。我找到的唯一可行的解决方案是由
但我不想获取设备上所有正在运行的进程并迭代它们。我尝试使用 Context 中的 getApplicationInfo().processName ,但不幸的是它总是返回相同的字符串,而上面链接中的解决方案返回:myPackage,myPackage:myservice。我首先不需要 processName,但需要一些好的解决方案来确定何时由普通启动调用 onCreate 方法以及何时由 myservice 启动调用。也许可以通过在某处应用某种标签或标签来完成,但我没有找到如何做到这一点。
我有一个 Android 应用程序,它扩展了Application该类,并且有许多应用程序组件(服务、活动和广播接收器)在三个不同的进程中运行。
每个进程将在Application启动后立即实例化该类。所以我一直在寻找如何检查Application类代码,如果实例归主应用程序进程所有,但我找不到任何东西。
我的清单看起来像这样:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name=".MyApplication"
android:theme="@style/AppTheme" >
<activity
android:name="...">
...
</activity>
<activity
android:name="...">
...
</activity>
<service android:name="..." >
</service>
<service android:name="..."
android:process=":SecondProcess" >
</service>
<service android:name="..."
android:process=":ThirdProcess" >
</service>
Run Code Online (Sandbox Code Playgroud)
接下来是我的Application类实现:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
if (is this instance being ran on the main process?) {
// Do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何检查实例是否在主进程上运行?