Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android - 使用Intent來啟動Activity

Android - 使用Intent來啟動Activity

編輯:關於Android編程

使用Intent來啟動Activity

 

 

Intent的用途是綁定應用程序組件, 並在應用程序之間進行通信;

startActivity(), 傳遞Intent參數, 創建並顯示一個Activity;

使用Intent解析(resolution)動態的選擇最匹配的Activity.

 

顯示啟動Activity:

創建一個Intent, 指定當前的語境(context)Activity類(class), 然後傳遞給startActivity()進行創建;

簡易說明:

Intent intent = new Intent (MyActivity.this, MyOtherActivity.class);

startActivity(intent);

 

隱式啟動Activity:

可以讓匿名的應用程序組件響應動作請求, 如Intent傳遞一個撥號動作(ACTION_DIAL), 和電話號碼(URI);

注: URI, Uniform Resource Identifier, 通用資源標示符;

Android將在運行時把Intent解析為最合適在指定數據類型上執行所需動作的類;

如果有多個Activity都能夠執行該動作, 則會向用戶提供多重選項, 如訪問URL, 會提示選擇浏覽器;

使用resolveActivity()方法, 可以判斷, Android是否可以解析Intent;

 

代碼:

 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //把布局填充到用戶界面

        Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(tel:13800001111));

        PackageManager pm = getPackageManager();
        ComponentName cn = intent.resolveActivity(pm);

        if (cn == null) {
            Uri marketUri = Uri.parse(market://search?q=pname:com.myapp.packagename);
            Intent marketIntent = new Intent(Intent.ACTION_VIEW).setData(marketUri);

            if (marketIntent.resolveActivity(pm) != null)
                startActivity(marketIntent);
            else
                Log.d(TAG, Market client not available);
        } else
            startActivity(intent);
    }

簡單的HelloWorld程序, 添加Intent隱式啟動Activity, 可以運行;

 

 

 

\

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved