程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程中線程池的根本概念和應用

Java編程中線程池的根本概念和應用

編輯:關於JAVA

Java編程中線程池的根本概念和應用。本站提示廣大學習愛好者:(Java編程中線程池的根本概念和應用)文章只能為提供參考,不一定能成為您想要的結果。以下是Java編程中線程池的根本概念和應用正文


本系列文章會依據項目標進度停止相干引見,其會分為多個模塊,每一個模塊互不依附,各個模塊都是零丁的進修內容,如sqlite進修模塊,contacts接洽人模塊等。

新建項目

信任年夜部門童鞋都可以自界說項目了,那末在此,我簡略引見下android studio新建項目標進程。

終究,android studio會為你生成2個build.gradle文件,你可以選擇android視圖閱讀文件,依據谷歌最新供給的sdk版本,我們把項目設置為api 14~23,翻開你的project項目標gradle文件,在dependencies中

classpath 'com.android.tools.build:gradle:1.5.0'

你不用在乎這一版本能否和我分歧,由於默許的jcenter倉庫應用的是https且辦事器在國外,我們將buildscript下的repositories和allprojects下的repositories添加

mavenLocal()
maven{ url 'http://maven.oschina.net/content/groups/public/'}

其寄義為優先在當地倉庫和開源中國maven倉庫搜索jar或許aar包。

子模塊

你會發明,android studio會默許為你創立demo模塊,其重要包括3部門:

  1. plugin android插件
  2. android android代碼塊,用於界說app的版本構建信息
  3. dependencies 該模塊的依附庫
  4. 由於該項目會觸及到許多模塊,而每一個模塊都邑對應一個gradle文件,而每一個gradle文件都邑有對應的android構建信息,這些信息年夜部門反復,且保護起來異常艱苦,是以,我們提早修正:

    subprojects{  
      configure(allprojects - project(':demo')) {
        apply plugin: 'com.android.library'
        android {
          compileSdkVersion 23
          buildToolsVersion '23.0.2'
      
          defaultConfig {
            minSdkVersion 14
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
          }
          lintOptions {
            abortOnError false
          }
        }
        dependencies {
          testCompile 'junit:junit:4.12'
          compile 'com.android.support:appcompat-v7:23.0.2'
        }
      }

    如許,在你新建的模塊中,你完整可以去除失落該模塊對應的gradle文件中的代碼,是否是很便利?

    demo模塊的搭建

    該模塊是運轉在你手機上的app,所以根本骨架和UI部門須要在此編寫。對應的相干模塊將會以下圖所示:

    那末若何展現這些模塊的特征呢?

    在此,我向年夜家引見AppCompatActivity和ButterKnife和CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,Toolbar,NestedScrollView的應用,固然也包含RecyclerView,CardView的應用。

    個中年夜部門都是android v7包中的新組件,須要年夜家體系進修,ButterKnife則是jk年夜神的依附注入框架。

    ButterKnife的應用詳解

    神馬是ButterKnife,應用注解,你不再應用findviewbyid初始化視圖了。關於ButterKnife的具體引見,在此就不多言了,那末若何應用它呢?

    在應用它之前,你須要android studio的一個壯大插件Zelezny,關於裝置插件,可以翻看第一篇文章:

    裝置完成後重啟android studio。

    好比如今你在你的activity_main.xml中可以界說一個button,並賦值給其id。然後翻開你的MainActivity.java文件,將光標移至R.layout.activity_main上,應用快捷鍵ALT + Insert鍵(留意我應用的eclipse快捷鍵),選擇generate butterknife injections,選擇確認,該插件會主動為你生成@Bind,和Butterknife.bind(this),就像如許:

    ButterKnife.bind(this)

    當你在某activity或許某fragment中應用@Bind注解的時刻,你須要在oncreate辦法上添加該辦法,其寄義為綁定該視圖,即@Bind中的id會主動在該視圖對應的layout中尋覓,所以其須要在setContentView辦法以後添加。特殊留意的是ButterKnife.bind(this)在fragment中其實不實用,你須要應用:

    public class FancyFragment extends Fragment {
       @Bind(R.id.button1) Button button1;
       @Bind(R.id.button2) Button button2;
    
       @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
              View view = inflater.inflate(R.layout.fancy_fragment, container, false);
              ButterKnife.bind(this, view);
              // TODO Use fields...
              return view;
             }
    
       @Override public void onDestroyView() {
              super.onDestroyView();
              ButterKnife.unbind(this);
             }
        }

    能夠你會問了,Butterknife是否是應用反射,那樣將會招致機能成績。其實呢,年夜家不消擔憂,代碼會在加載視圖的時刻主動生成,主動生成的代碼以下所示:

    public void bind(ExampleActivity activity) {
     activity.subtitle = (android.widget.TextView) activity.findViewById(2130968578);
     activity.footer = (android.widget.TextView) activity.findViewById(2130968579);
     activity.title = (android.widget.TextView) activity.findViewById(2130968577);
    }

    假如年夜家照樣不寧神的話,可以應用debug形式,檢查bind辦法。

    監聽綁定

    好比你的視圖外面有多個button,這時候候,你確定是先初始化這些button,然後再為每一個button添加監聽事宜,然後該類完成onClick接口,重寫該接口,應用switch辦法,斷定點擊了哪一個按鈕。其實,你可使用ButterKnife:

    @OnClick(R.id.submit)
    public void submit(View view) {
     // TODO submit data to server...
    }

    而關於的參數是可選的:

    @OnClick(R.id.submit)
    public void submit() {
     // TODO submit data to server...
    }

    界說一個特別類型,其會為你主動轉換:

    @OnClick(R.id.submit)
    public void sayHi(Button button) {
     button.setText("Hello!");
    }

    那末你有多個按鈕呢:

    @OnClick({ R.id.door1, R.id.door2, R.id.door3 })
    public void pickDoor(DoorView door) {
     if (door.hasPrizeBehind()) {
      Toast.makeText(this, "You win!", LENGTH_SHORT).show();
     } else {
      Toast.makeText(this, "Try again", LENGTH_SHORT).show();
     }
    }

    是否是超等便利!!!

    關於ButterKnife的具體引見和應用辦法,你可以檢查:http://jakewharton.github.io/butterknife/

    好了,明天就講這麼多了,下一篇,將會為你帶來項目標搭建和AppCompatActivity,CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,Toolbar,NestedScrollView的應用!!!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved