0

我想在杀死应用程序的 pid 之前获取应用程序的包名称。所以我需要修改android/os/Process.java的killProcess(pid)。由于它没有上下文,如何做到这一点?请帮忙

4

2 回答 2

0

创建一个静态类并Application在该类中为 Context 创建一个静态变量。在您的应用程序中随处使用该变量。试试这个:

public class MyApplication extends Application{

    private static Context context;
    private static Application application;

    public static Application getApplication(){
        return application;
    }

    public void onCreate(){
        super.onCreate();
        MyApplication.context = getApplicationContext();
        MyApplication.application = getApplication();
 }

    public static Context getAppContext() {
        return MyApplication.context;
    }
}

不要忘记在清单文件中声明自定义应用程序:

<application
        android:name="your.package.MyApplication"
...>
...
</application>
于 2013-10-29T07:20:58.190 回答
0

手动终止 android 进程是一种不好的做法,但您可以使用此行来终止它。

android.os.Process.killProcess(android.os.Process.myPid());

或者

您可以在 Main_activity 中清除静态变量并在此处分配应用程序上下文。然后您可以在应用程序中的任何位置访问包名称

public static String packageName;

然后..

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    .
    .   
    packageName = getApplicationContext().getPackageName();
}

你可以用它作为Main_activity.pacageName

于 2013-10-29T07:22:20.990 回答