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