97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠見教育科技集團 >> 新聞動態(tài) >> Android資料 >> Android Activity的四種啟動模式  
 
Android Activity的四種啟動模式
分享到:

Activity作為Android中重要一環(huán),它有4種不同的啟動模式,類似于C語言中的局部變量、全局變量及靜態(tài)變量等。這4種啟動模式如下。

·standard:標準模式,調(diào)用startActivity()方法就會產(chǎn)生一個新的實例。

·singleTop:檢查是否已經(jīng)存在了一個實例位于Activity Stack的頂部,如果存在就不產(chǎn)生新的實例,反之則調(diào)用Activity的newInstance()方法產(chǎn)生一個新實例。

·singleTask:在一個新的Task中產(chǎn)生這個實例,以后每次調(diào)用都會使用此實例,而避免產(chǎn)生新的實例。

·singleInstance:這個基本上跟singleTask一樣,只是有一點不同,那就是在這個模式下的Activity實例所處的Task中,只能有這一個Activity實例,而不能有其他的實例。

這些啟動模式在Android清單文件AndroidManifest.xml中,通過中的launchMode屬性進行設(shè)置,如代碼清單1-1所示。

代碼清單1-1 AndroidManifest.xml


    <activity android:name=".Activity2"
                android:launchMode="singleTask"></activity>

也可以在Eclipse ADT圖形界面中編輯,如圖1-1所示。


圖1-1 設(shè)置Activity啟動模式

下面通過一個簡單的例子——LaunchMode_Test來對四種啟動模式進行簡要分析,在該例中涉及Fx_Main、Activity2及Activity3三個Activity。下面介紹一下例子中涉及的三個Activity及其界面。

首先是Fx_Main,其界面如圖1-2所示。


圖1-2 Fx_Main的界面

在圖1-2所示的界面中,單擊"跳轉(zhuǎn)到AC2"按鈕之后,跳轉(zhuǎn)至Activity2,具體代碼如代碼清單1-2所示。

代碼清單1-2 Fx_Main.Activity


import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;

    public class Fx_Main extends Activity {
        /** Called when the activity is first created. */
        private Button b;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            TextView tv=(TextView)findViewById(R.id.TextView01);
            tv.setText("Main---->"+getTaskId());
            Log.i("System.out", "Main---->"+this.toString()+"Task ID---->"+getTaskId());
            b=(Button)findViewById(R.id.Button01);
            b.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i=new Intent(Fx_Main.this,Activity2.class);
                    startActivity(i);
            }});
        }
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            Log.i("System.out", "Fx_Main--->Destory");
        }
    }

其次是Activity2,其界面如圖1-3所示。


圖1-3 Activity2的界面

在該界面中,單擊"跳回到Main"按鈕,則跳轉(zhuǎn)至Fx_Main,而單擊"跳到本頁面"則仍顯示Activity2的界面,單擊"跳到AC3"則跳轉(zhuǎn)到Activity3的界面,具體代碼如代碼清單1-3所示。

代碼清單1-3 Activity2.Activity


import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;

    public class Activity2 extends Activity {
        private Button b;
        private Button b2;
        private Button b3;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity2);
            b=(Button)findViewById(R.id.Button02);
            b2=(Button)findViewById(R.id.Button03);
            b3=(Button)findViewById(R.id.Button04);
            TextView tv=(TextView)findViewById(R.id.TextView02);
            tv.setText("Ac2---->"+getTaskId());
            Log.i("System.out", "Ac2---->"+this.toString()+"Task ID---->"+getTaskId());
            b.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i=new Intent(Activity2.this,Fx_Main.class);
                    startActivity(i);
            }});
            b2.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i=new Intent(Activity2.this,Activity2.class);
                    startActivity(i);
            }});
            b3.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i=new Intent(Activity2.this,Activity3.class);
                    startActivity(i);
            }});
        }
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            Log.i("System.out", "Ac2--->destory");
        }
    }

后是Activity3,其界面如圖1-4所示。


圖1-4 Activity3的界面

如圖1-4所示,單擊"返回Main"則跳轉(zhuǎn)至Fx_Main,單擊"返回AC2",則跳轉(zhuǎn)到Activity2。具體代碼如代碼清單1-5所示。

代碼清單1-5 Activity3.Activity


import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;

    public class Activity3 extends Activity {
        private Button b;
        private Button b2;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity3);
            b=(Button)findViewById(R.id.Button03);
            b2=(Button)findViewById(R.id.Button04);
            TextView tv=(TextView)findViewById(R.id.TextView03);
            tv.setText("Ac3---->"+getTaskId());
            Log.i("System.out", "Ac3---->"+this.toString()+"Task ID---->"+getTaskId());
            b.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i=new Intent(Activity3.this,Fx_Main.class);
                    startActivity(i);
            }});
            b2.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent i=new Intent(Activity3.this,Activity2.class);
                    startActivity(i);
            }});
        }
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            Log.i("System.out", "Ac3--->Destory");
        }
    }

通過上文LaunchMode_Test這個簡單的例子,相信大家對于Android Activity的四種啟動模式有了初步的認識,那么,這四種啟動模式有什么區(qū)別呢?我們明天的免費資料會給大家進一步作出講解!

 更多相關(guān)文章

·Activity的生命周期回調(diào)方法
·圖解Android Activity生命周期
·Android應(yīng)用組件Activity
·Android進程的生命周期
·Android常用組件生命周期