Android完全退出应用程序 ,太爽了

return instance;

}

//退出栈顶Activity

public void popActivity(Activity activity) {

if (activity != null) {

//在从自定义集合中取出当前Activity时,也进行了Activity的关闭操作

activity.finish();

activityStack.remove(activity);

activity = null;

}

}

//获得当前栈顶Activity

public Activity currentActivity() {

Activity activity = null;

if(!activityStack.empty())

activity= activityStack.lastElement();

return activity;

}

//将当前Activity推入栈中

public void pushActivity(Activity activity) {

if (activityStack == null) {

activityStack = new Stack();

}

activityStack.add(activity);

}

//退出栈中所有Activity

public void popAllActivityExceptOne(Class cls) {

while (true) {

Activity activity = currentActivity();

if (activity == null) {

break;

}

if (activity.getClass().equals(cls)) {

break;

}

popActivity(activity);

}

}

}

再看看自定义的Application类,有关网络连接处理的代码可以忽略不管。

public class ApplicationEx extends Application {

private static final String TAG = “ApplicationEx”;

private HttpClient httpClient; //采用apache网络连接组件

private ActivityManager activityManager = null;

public ApplicationEx() {

}

public ActivityManager getActivityManager() {

return activityManager;

}

public void setActivityManager(ActivityManager activityManager) {

this.activityManager = activityManager;

}

@Override

public void onCreate() {

super.onCreate();

httpClient = createHttpClient();

//初始化自定义Activity管理器

activityManager = ActivityManager.getScreenManager();

}

@Override

public void onLowMemory() {

super.onLowMemory();

shutdownHttpClient();

}

@Override

public void onTerminate() {

super.onTerminate();

shutdownHttpClient();

}

private void shutdownHttpClient() {

if (httpClient != null && httpClient.getConnectionManager() != null) {

httpClient.getConnectionManager().shutdown();

}

}

private HttpClient createHttpClient() {

Log.d(TAG, “createHttpClient()…”);

HttpParams params = new BasicHttpParams();

HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);

HttpProtocolParams.setUseExpectContinue(params, true);

SchemeRegistry schReg = new SchemeRegistry();

schReg.register(new Scheme(“http”, PlainSocketFactory.getSocketFactory(), 80));

总结

我最近从朋友那里收集到了2020-2021BAT 面试真题解析,内容很多也很系统,包含了很多内容:Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题等等,可以很好地帮助大家深刻理解Android相关知识点的原理以及面试相关知识

这份资料把大厂面试中常被问到的技术点整理成了PDF,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

这里也分享给广大面试同胞们,希望每位程序猿们都能面试成功~

领取方式:点击直达GitHub

Android 基础知识点

Java 基础知识点

Android 源码相关分析

常见的一些原理性问题

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析


1644908699384)]

Android 源码相关分析

[外链图片转存中…(img-NZaogS61-1644908699384)]

常见的一些原理性问题

[外链图片转存中…(img-Seeou1L0-1644908699385)]

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析

[外链图片转存中…(img-eb9ZcjYP-1644908699385)]

猜你喜欢

转载自blog.csdn.net/m0_66264630/article/details/122945030