編輯:關於android開發
在activity之間數據傳遞中還有一種比較實用的方式,就是全局對象application
Application和Activity,Service一樣是Android框架的一個系統組件,當Android程序啟動時系統會創建一個Application對象,用來存儲系統的一些信息。
Android系統自動會為每個程序運行時創建一個Application類的對象且只創建一個,所以Application可以說是單例(singleton)模式的一個類。
通常我們是不需要指定一個Application的,系統會自動幫我們創建,如果需要創建自己的Application,那也很簡單!創建一個類繼承Application並在AndroidManifest.xml文件中的application標簽中進行注冊(只需要給application標簽增加name屬性,並添加自己的 Application的名字即可)。
啟動Application時,系統會創建一個PID,即進程ID,所有的Activity都會在此進程上運行。那麼我們在Application創建的時候初始化全局變量,同一個應用的所有Activity都可以取到這些全局變量的值,換句話說,我們在某一個Activity中改變了這些全局變量的值,那麼在同一個應用的其他Activity中值就會改變。
Application對象的生命周期是整個程序中最長的,它的生命周期就等於這個程序的生命周期。因為它是全局的單例的,所以在不同的Activity,Service中獲得的對象都是同一個對象。所以可以通過Application來進行一些,如:數據傳遞、數據共享和數據緩存等操作。
除非是android應用程序清除內存,否則全局對象將一直可以訪問。
通過下面這個例子了解一下全局變量
新建一個MyApplication類並使其繼承Application
package com.example.activity; import java.util.HashMap; import android.app.Application; public class MyApplication extends Application{ /* * 創建一個map集合 * */ private static HashMapmap=new HashMap (); private static MyApplication application; /* * 返回application * */ public static MyApplication getApplication(){ return application; } /* * 返回map集合 * */ public static HashMap getMap(){ return map; } /* * 對於一個應用來說 android入口並不是Activity中的OnCreate()而是Application裡面的Oncreate() * 也就相當於是java中的Main方法,只不過這個方法被封裝了 * */ @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); //在Application創建時,讀取Application application=this; } }
在MainActivity中添加一個按鈕 並為其添加監聽事件,點擊後跳轉到OtherActivity
點擊事件的代碼為
Intent intent=new Intent(); intent.setClass(MainActivity.this, OtherActivity.class); MyApplication app=MyApplication.getApplication(); app.getMap().put("姓名", "蘇蘇"); app.getMap().put("星座", "雙魚座"); startActivity(intent);點擊按鈕後跳轉到OtherActivity ,並在Activity中輸出Map集合中的對象
Toast.makeText(OtherActivity.this, app.getMap().get("姓名")+" "+app.getMap().get("星座"), Toast.LENGTH_LONG).show();
protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); app.getMap().remove("姓名"); app.getMap().remove("星座"); }
2015烏鎮互聯網大會,母嬰美食快餐類APP入眼,2015烏鎮重構與用戶之間的信任感將是這一細分行業的首要任務。未來誰能真正贏得用戶的信任,誰才能笑到最後。 這幾日,整
perf profiling 分析程序性能perf profiling 分析程序性能程序性能分析perf 有一個功能就是按一定頻率采集某一個程序的調用棧,然後對調用棧進行
Listview詳解,listview Listview應該是最為常見的控件。對於大多數規則排列的界
android:Intent匹配action,category和data原則,androidintent1.當你在androidmanifest裡面定義了一個或多個act