インスタンスを返します。
}
//スタックの最上位のアクティビティを終了します
public void PopActivity(アクティビティアクティビティ) {
if (アクティビティ != null) {
//現在のアクティビティがカスタム コレクションから取り出されるとき、アクティビティも閉じられます。
activity.finish();
activityStack.remove(アクティビティ);
アクティビティ = null;
}
}
// 現在のスタックトップのアクティビティを取得します
public アクティビティ currentActivity() {
アクティビティアクティビティ = null;
if(!activityStack.empty())
activity= activityStack.lastElement();
活動を返す。
}
// 現在のアクティビティをスタックにプッシュします
public void PushActivity(アクティビティアクティビティ) {
if (activityStack == null) {
activityStack = 新しいスタック();
}
activityStack.add(アクティビティ);
}
// スタック内のすべてのアクティビティを終了します
public void PopAllActivityExceptOne(Class cls) {
while (true) {
アクティビティアクティビティ = currentActivity();
if (アクティビティ == null) {
壊す;
}
if (activity.getClass().equals(cls)) {
壊す;
}
PopActivity(アクティビティ);
}
}
}
カスタム Application クラスをもう一度見てください。ネットワーク接続処理に関連するコードは無視できます。
パブリック クラス ApplicationEx extends Application {
private static Final String TAG = “ApplicationEx”;
private HttpClient httpClient; //Apache ネットワーク接続コンポーネントを採用
プライベートアクティビティマネージャー activityManager = null;
public ApplicationEx() {
}
public ActivityManager getActivityManager() {
activityManager を返します。
}
public void setActivityManager(ActivityManager activityManager) {
this.activityManager = activityManager;
}
@オーバーライド
public void onCreate() {
super.onCreate();
httpClient = createHttpClient();
//カスタムアクティビティマネージャーを初期化します
activityManager = ActivityManager.getScreenManager();
}
@オーバーライド
public void onLowMemory() {
super.onLowMemory();
shutdownHttpClient();
}
@オーバーライド
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 関連の知識ポイントと面接関連の知識の原則を深く理解するのに役立つAndroid 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题
多くの内容が含まれています。
この情報は、 Dachang のインタビューでよく聞かれる技術的なポイントを、知識コンテキストと多くの詳細を含む PDF にまとめたもので、誰もが学び向上するのに役立つ高度なアーキテクチャ技術の高度な脳マップもあり、誰もが検索する手間も省けます。インターネット上の情報 時間をかけて学習することもできますし、友達と共有して一緒に学習することもできます。
これは、膨大な数の面接同胞にも共有されました。すべてのプログラマーが面接を成功できることを願っています~
Androidの基本
Javaの基本
Android ソースコード関連の分析
いくつかの一般的な原則の問題
Tencent、ByteDance、Ali、Baidu などの主要 BAT 企業の 2019 ~ 2020 年の面接質問の分析
1644908699384)]
Android ソースコード関連の分析
【外部リンク画像転送...(img-NZaogS61-1644908699384)】
いくつかの一般的な原則の問題
[外部リンク画像転送...(img-Seeou1L0-1644908699385)]
Tencent、ByteDance、Ali、Baidu などの主要 BAT 企業の 2019 ~ 2020 年の面接質問の分析
【外部リンク画像転送…(img-eb9ZcjYP-1644908699385)】