Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> 系出名門Android(4) - 活動(Activity),服務(Service),廣播……

系出名門Android(4) - 活動(Activity),服務(Service),廣播……

編輯:Android開發教程

系出名門Android(4) - 活動(Activity),服務(Service),廣播(Broadcast),廣播接收器(BroadcastReceiver)

介紹

在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver

活動(Activity) - 用於表現功能

服務(Service) - 相當於後台運行的 Activity

廣播(Broadcast) - 用於發送廣播

廣播接收器(BroadcastReceiver) - 用於接收廣播

Intent - 用於連接以上各個組件,並在其間傳遞消息

1、演示 Activity 的基本用法,一個 Activity 啟動另一個 Activity,啟動另一個 Activity 時為其傳遞參數,被啟動的 Activity 返回參數給啟動者的 Activity

Main.java

package com.webabcd.activity;

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

public class Main extends Activity {

    TextView txt;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.main);

        txt = (TextView) this.findViewById(R.id.txt);
        txt.setText("Activity 1");

        Button btn = (Button) this.findViewById(R.id.btn);
        btn.setText("啟動另一個Activity");
        btn.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v) {

                // 實例化 Intent,指定需要啟動的 Activity
                Intent intent = new Intent();
                intent.setClass(Main.this, MyActivity.class);

                // 實例化 Bundle,設置需要傳遞的參數
                Bundle bundle = new Bundle();
                bundle.putString("name", "webabcd");
                bundle.putDouble("salary", 100.13);

                // 將需要傳遞的參數賦值給 Intent 對象
                intent.putExtras(bundle);

                // startActivity(intent); // 啟動指定的 Intent(不等待返回結果)
                // Main.this.finish();

                // 啟動指定的 Intent,並等待返回結果
                // 其中第二個參數如果大於等於零,則返回結果時會回調 onActivityResult() 方法
                startActivityForResult(intent, 0);
            }
        });

        Log.d("MyDebug", "onCreate");
    }

    // 被啟動的 Activity 返回結果時的回調函數
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK){
            Bundle bundle = data.getExtras();

            String name = bundle.getString("name");
            double salary = bundle.getDouble("salary");

            txt.setText("Activity 1" + "\n名字:" + name + "\n薪水:" + String.valueOf(salary));
        }
    }

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();

        Log.d("MyDebug", "onStart");
    }

    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();

        Log.d("MyDebug", "onStop");
    }

    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        super.onRestart();

        Log.d("MyDebug", "onRestart");
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();

        Log.d("MyDebug", "onPause");
    }

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();

        Log.d("MyDebug", "onResume");
    }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();

        Log.d("MyDebug", "onDestroy");
    }
}

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