1. 程式人生 > >Android開發步驟及注意事項

Android開發步驟及注意事項

1,在Activity中實現Activity的宣告週期方法。

onCreate()

onDestroy()

2,繼承Application實現自定義生命週期管理

import java.util.Stack;

import android.app.Activity;
import android.app.Application;

public class MyApplication extends Application{
	private static Stack<Activity> activityStack;
    private static MyApplication singleton;
    @Override
    public void onCreate()
    {
        super.onCreate();
        singleton=this;
    }
    // Returns the application instance
    public static MyApplication getInstance() {
        return singleton;
    }

    /**
     * add Activity 新增Activity到棧
     */
    public void addActivity(Activity activity){
        if(activityStack ==null){
            activityStack =new Stack<Activity>();
        }
        activityStack.add(activity);
    }
    /**
     * get current Activity 獲取當前Activity(棧中最後一個壓入的)
     */
    public Activity currentActivity() {
        Activity activity = activityStack.lastElement();
        return activity;
    }
    /**
     * 結束當前Activity(棧中最後一個壓入的)
     */
    public void finishActivity() {
        Activity activity = activityStack.lastElement();
        finishActivity(activity);
    }

    /**
     * 結束指定的Activity
     */
    public void finishActivity(Activity activity) {
        if (activity != null) {
            activityStack.remove(activity);
            activity.finish();
            activity = null;
        }
    }

    /**
     * 結束指定類名的Activity
     */
    public void finishActivity(Class<?> cls) {
        for (Activity activity : activityStack) {
            if (activity.getClass().equals(cls)) {
                finishActivity(activity);
            }
        }
    }

    /**
     * 結束所有Activity
     */
    public void finishAllActivity() {
        for (int i = 0, size = activityStack.size(); i < size; i++) {
            if (null != activityStack.get(i)) {
                activityStack.get(i).finish();
            }
        }
        activityStack.clear();
    }

    /**
     * 退出應用程式
     */
    public void AppExit() {
        try {
            finishAllActivity();
        } catch (Exception e) {
        }
    }
}
修改AndroidMenifest.xml應用配置檔案。
 <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
       <span style="color:#FF0000;"><strong> android:name="com.example.zxingdemo.MyApplication"</strong></span>
        android:theme="@android:style/Theme.NoTitleBar" >
3,程式碼中進行生命週期控制
</pre><pre name="code" class="java">public class MainActivity2 extends Activity {

	TextView textView6, textView7, textView8, textView9;
	Button button;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		<span style="color:#FF6666;"><strong>MyApplication.getInstance().addActivity(this);</strong></span>
		setContentView(R.layout.permanent);
		textView6 = (TextView) findViewById(R.id.textView6);
		textView7 = (TextView) findViewById(R.id.textView7);
		textView8 = (TextView) findViewById(R.id.textView8);
		textView9 = (TextView) findViewById(R.id.textView9);
		Bundle bundle = this.getIntent().getExtras();
		button.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity2.this,
						MainActivity.class);
				startActivity(intent);
			}
		});
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		<span style="color:#FF0000;"><strong>MyApplication.getInstance().finishActivity(this);</strong></span>
	}
}
4,Activity中所有宣告的控制元件必須例項化。



相關推薦

Android開發步驟注意事項

1,在Activity中實現Activity的宣告週期方法。 onCreate() onDestroy() 2,繼承Application實現自定義生命週期管理 import java.util.Stack; import android.app.Activity; im

android APP整合系統詳細步驟注意事項(amlogic平臺)

此說明用於amlogic平臺整合不簽名的apk。(如何判斷整合的apk需不需要簽名。簡單來說使用U盤安裝後,能正常開啟使用的就可以不簽名方式整合。) 各平臺的檔案系統有差異,但整體大同小異。其他平臺

ASP.net 網站釋出步驟注意事項

1、用VS2013開啟解決方案。      2、選中解決方案,點選滑鼠“右鍵”—>從彈出對話方塊中,選擇“清理解決方案”。 3、待第2步“清理解決方案”結束後,選中“解決方案”—>點選滑鼠“右鍵”—>在彈出對話方塊中,選擇“重新生

Spring boot 整合mybatis通用mapper配置步驟注意事項

一、新增依賴 二、繼承通用mapper,可以重寫和選擇需要的mapper方法,可以去掉一些不需要的方法(一般直接繼承即可) Mapper3提供的全部的方法,可以檢視Mapper3通用介面大全 三、application.properties配置 四、設定dao路徑 在

node.js 整合 ueditor 步驟注意事項

這裡是我費了一天的心思總算成功的搞好了 node.js 與 ueditor 整合的過程。做一個小白真難啊,非摸著石頭過河。今天心好累,要多說一點廢話。完成這個內容之前,首先你得保證你引用ueditor的介面在 nodejs 專案中。以我的介面為例,就在 myapp/publi

maven執行ssh三大框架+oracle資料庫的一般步驟注意事項

maven執行ssh框架一般步驟: (一)建立父工程(maven project)ssh_parent(pom) 1、配置pom.xml。 2、maven的倉庫有三種:本地倉庫、私服、中央倉庫,程式執

ansible安裝k8s步驟注意事項(線上安裝)

以下步驟都經本人實測,可以完美執行。官方參考網址:https://github.com/gjmzj/kubeasz/Ansible瞭解ansible是個什麼東西呢?官方的title是“Ansibleis

React Native在windows上android環境搭配注意事項

React Native是新型跨平臺開發的技術,簡稱RN。開發和維護團隊是Facebook,現在開源了,應該會火起來吧。 直奔主題....... 環境搭配: 本人的電腦win10,win7和win8都差不多的。 需要安裝的有nodejs,python2.x,JDK,And

新手建網站的步驟注意事項

        建網站是指因特網上一塊固定的面向全世界釋出訊息的地方,建網站由(也就是網站地址)、程式和網站空間構成,通常包括主頁和其他具有超連結檔案的頁面。網站是一種通訊工具,就像布告欄一樣,人們可以通過網站來發布自己想要公開的資訊,或者利用網站來提供相關的網路服務。人們

採用opencv_cascadetrain進行訓練的步驟注意事項

OpenCV中有兩個程式可以訓練級聯分類器: opencv_haartraining 和opencv_traincascade。opencv_traincascade 是一個新程式,使用OpenCV 2.x API 以C++ 編寫。這二者主要的區別是 opencv_trai

關於CDH5安裝的步驟注意事項

注:此為hadoop CDH5.11離線安裝 一、準備 安裝所需檔案 1 官網下載Cloudera Manager和CDH 5.11 Cloudera Manager下載地址:http://archive.cloudera.com/cm5/cm/5/ cloudera-

VS2015 cordova手動刪除外掛步驟注意事項

使用VS2015開發cordova專案時,VS可以對config.xml進行視覺化操作,非常方便,並且新增外掛也非常方便,不需要去用npm等工具下載,直接在視覺化介面就可新增,但是有時候會出現安裝外掛出錯的情況,我想把安裝的外掛刪掉,重新安裝,但是刪除外掛時同樣出錯,debu

Android開發規範以及注意事項

一、Android資原始檔命名與使用  1.【推薦】資原始檔需要帶模組字首。 2.【推薦】layout檔案的命名方式。 Activity的layout以module_activity開頭 Fragment的laytout以module_fragment開頭 ListView

一步步安裝k8s步驟注意事項

具體的安裝步驟就不提了,這兒主要提一下安裝過程中遇到的坑和注意事項。參考:1.etcd叢集安裝時,注意關閉防火牆2..kube/config需要授權3,kubectl得在apiserver裝完之後才能使用,被誤導了4.注意修改kubelet中的映象5.exec執行時:Erro

ansible安裝k8s步驟注意事項(離線安裝)

依賴包網址:1.在所有部署節點上搭建私有yum源①新建mkdir/media/Packages複製ansible_offline_Packages下的所有rpm到yum源目錄下/mdeia/Packages。②上傳createrepo包,使用rpm命令手動安裝createre

AIDL實現步驟注意事項

一、AIDL實現步驟 1、建立AIDL介面檔案,如果介面檔案中用到AIDL非預設支援的資料型別,那麼還要該資料型別還要先通過AIDL檔案定義。所以AIDL檔案可以分為兩類:一類為一類是用來定義parc

Android TV開發中所有的遙控器按鍵監聽注意事項,新增home鍵監聽

簡單記錄下android 盒子開發遙控器的監聽 ,希望能幫到新入門的朋友們 不多說,直接貼程式碼 public class MainActivity extends Activity { private String TAG="key";

《連載 | 物聯網框架ServerSuperIO教程》- 7.自控通訊模式開發注意事項

目       錄 7. 自控通訊模式開發及注意事項... 2 7.1           概述... 2 7.2           通訊機制說明... 2 7.3           裝置驅動開發注意事項... 3 7.3.1    實時傳送資料... 3 7.

《連載 | 物聯網框架ServerSuperIO教程》- 8.單例通訊模式開發注意事項

目       錄 8.單例通訊模式開發及注意事項... 2 8.1           概述... 2 8.2           通訊機制說明... 2 8.3           裝置驅動開發注意事項... 2 8.4           宿主程式服

《連載 | 物聯網框架ServerSuperIO教程》- 5.輪詢通訊模式開發注意事項。附:網友製作的類庫說明(CHM)

目       錄 5. 輪詢通訊模型開發及注意事項... 2 4.1           概述... 2 4.2           通訊機制說明... 2 4.3           裝置驅動開發注意事項... 3 4.3.1    實時傳送資料... 3 4.3.2