亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android編程中context及全局變量實例詳解

 更新時間:2015年12月14日 15:28:01   作者:傲慢的上校  
這篇文章主要介紹了Android編程中context及全局變量的用法,結(jié)合實例形式較為詳細(xì)的分析講述了context及全局變量的使用技巧與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了Android編程中context及全局變量的用法。分享給大家供大家參考,具體如下:

今天在研究context的時候,對application和activity context有了一定的了解,下面是從網(wǎng)上復(fù)制過來的資料

Application context和Activity context的區(qū)別:

這是兩種不同的context,也是最常見的兩種。第一種中context的生命周期與Application的生命周期相關(guān)的,context隨著Application的銷毀而銷毀,伴隨application的一生,與activity的生命周期無關(guān)。第二種中的context跟Activity的生命周期是相關(guān)的,但是對一個Application來說,Activity可以銷毀幾次,那么屬于Activity的context就會銷毀多次。至于用哪種context,得看應(yīng)用場景,個人感覺用Activity的context好一點,不過也有的時候必須使用Application的context。application context可以通過Context.getApplicationContext或者Activity.getApplication方法獲取。

還有就是,在使用context的時候,小心內(nèi)存泄露,防止內(nèi)存泄露,注意一下幾個方面:

1. 不要讓生命周期長的對象引用activity context,即保證引用activity的對象要與activity本身生命周期是一樣的

2. 對于生命周期長的對象,可以使用application context

3. 避免非靜態(tài)的內(nèi)部類,盡量使用靜態(tài)類,避免生命周期問題,注意內(nèi)部類對外部對象引用導(dǎo)致的生命周期變化

現(xiàn)在回到正題,說一下android全局變量,在平時的開發(fā)過程中,有時候可能會需要一些全局?jǐn)?shù)據(jù),來讓應(yīng)用中的所有Activity和View都能訪問到,大家在遇到這種情況時,可能首先會想到自己定義一個類,然后創(chuàng)建很多靜態(tài)成員,android已經(jīng)為我們提供了這種情況的解決方案:

在Android中,有一個Application類,在Activity中可以使用getApplication()方法獲得實例,使用它就可以獲得當(dāng)前應(yīng)用的主題、資源文件中的內(nèi)容等,這個類更靈活的一個特性就是可以被繼承,來添加自己的全局屬性。例如開發(fā)一個游戲,需要保存分?jǐn)?shù),那么我們就可以繼承Application,下面是個demo供大家參考

首先,先寫個Application的子類:

import android.app.Application;
public class GameApplication extends Application {
 private int score;
 public int getScore() {
  return score;
 }
 public void setScore(int score) {
  this.score = score;
 }
}

然后在manifest.xml文件里面修改:

<application android:name=".GameApplication" android:icon="@drawable/icon" android:label="@string/app_name">
  <activity android:name=".DemoActivity"
     android:label="@string/app_name">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
  <activity android:name="ResultActivity"></activity>
</application>

注意到添加了android:name=".GameApplication" 。

修改完了以后,再往下看:

public class DemoActivity extends Activity {
 public Button button;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  button=(Button)findViewById(R.id.button);
  ((GameApplication)getApplication()).setScore(100);
  button.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
    Intent intent=new Intent();
    intent.setClass(DemoActivity.this, ResultActivity.class);
    startActivity(intent);
   }
  });
 }
}

在這個activity里面設(shè)置了分?jǐn)?shù),我們可以在別的activity里面取出來:

public class ResultActivity extends Activity {
  @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.other);
  TextView tv=(TextView)findViewById(R.id.tv);
  int score=((GameApplication)getApplicationContext()).getScore();
  tv.setText("你的成績是:"+score);
 }
}

這只是個簡單的例子,當(dāng)然,想要完成以上功能,使用intent傳值就可以了,這樣還顯得麻煩,但是,如果有很多activity,使用這種方法就會發(fā)現(xiàn)很有用,是不是使用sharepreference也可以完成類似功能呢,可以,但是,效率方面就要比這個差很多了,sharepreference主要是用來存儲數(shù)據(jù),你可以退出程序時把所需要保存的簡單數(shù)據(jù)保存到sharepreference里面,當(dāng)然復(fù)雜的數(shù)據(jù),還得使用sqllite。

希望本文所述對大家Android程序設(shè)計有所幫助。

相關(guān)文章

  • Android字體相關(guān)知識總結(jié)

    Android字體相關(guān)知識總結(jié)

    最近接到一個需求,大致內(nèi)容是:全局替換當(dāng)前項目中的默認(rèn)字體,并引入 UI 設(shè)計師提供的一些新字體。于是對字體做了些研究,把自己的一些心得分享給大家。注意:本文所展示的系統(tǒng)源碼都是基于Android-30 ,并提取核心部分進(jìn)行分析
    2021-06-06
  • Android系統(tǒng)模擬位置的使用方法

    Android系統(tǒng)模擬位置的使用方法

    這篇文章主要為大家詳細(xì)介紹了Android系統(tǒng)模擬位置的使用方法,具有參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android textview 實現(xiàn)長按自由選擇復(fù)制功能的方法

    Android textview 實現(xiàn)長按自由選擇復(fù)制功能的方法

    下面小編就為大家?guī)硪黄狝ndroid textview 實現(xiàn)長按自由選擇復(fù)制功能的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • android開發(fā)仿ios的UIScrollView實例代碼

    android開發(fā)仿ios的UIScrollView實例代碼

    下面小編就為大家分享一篇android開發(fā)仿ios的UIScrollView實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android錄音并且輸出為Mp4文件的方法教程

    Android錄音并且輸出為Mp4文件的方法教程

    這篇文章主要給大家介紹了關(guān)于Android錄音并且輸出為Mp4文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Android多套環(huán)境的維護(hù)思路詳解

    Android多套環(huán)境的維護(hù)思路詳解

    這篇文章主要為大家介紹了Android多套環(huán)境的維護(hù)思路詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Android ViewFlipper的詳解及實例

    Android ViewFlipper的詳解及實例

    這篇文章主要介紹了Android ViewFlipper的詳解及實例的相關(guān)資料,通過本文希望能幫助大家理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • Android顯示全文折疊控件使用方法詳解

    Android顯示全文折疊控件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Android顯示全文折疊控件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • listview里子項有按鈕的情況使用介紹

    listview里子項有按鈕的情況使用介紹

    不知大家有沒有遇到過listview里子項有按鈕的情況哈,本文自定義了按鈕并且在布局中做了引用,適合初學(xué)者哦,感興趣的也可以了解下
    2013-03-03
  • Android自定義view之太極圖的實現(xiàn)教程

    Android自定義view之太極圖的實現(xiàn)教程

    這篇文章主要給大家介紹了關(guān)于Android自定義view之太極圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論