在Process.java中获取Context

时间:2013-10-29 07:07:30

标签: android

我希望在杀死app的pid之前获取应用程序的包名称。所以我需要修改android / os / Process.java的killProcess(pid)。怎么做,因为它没有上下文?请帮忙

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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