1. 程式人生 > >Service和IntentService與Acticity之間的通訊

Service和IntentService與Acticity之間的通訊

public class MainActivity extends Activity {     Button bind, unbind, getServiceStatus;     // 保持所啟動的Service的IBinder物件     BindService.MyBinder binder;     // 定義一個ServiceConnection物件     private ServiceConnection conn = new ServiceConnection()     {         // 當該Activity與Service連線成功時回撥該方法         @Override         public void onServiceConnected(ComponentName name                 , IBinder service)         {             System.out.println("--Service Connected--");
            // 獲取Service的onBind方法所返回的MyBinder物件             binder = (BindService.MyBinder) service;  // ①         }         // 當該Activity與Service斷開連線時回撥該方法         @Override         public void onServiceDisconnected(ComponentName name)         {             System.out.println("--Service Disconnected--");
        }     };     @Override     public void onCreate(Bundle savedInstanceState)     {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         // 獲取程式介面中的start、stop、getServiceStatus按鈕         bind = (Button) findViewById(R.id.bind);         unbind = (Button) findViewById(R.id.unbind);         getServiceStatus = (Button) findViewById(R.id.getServiceStatus);         // 建立啟動Service的Intent         final Intent intent = new Intent(this, BindService.class);
        bind.setOnClickListener(new OnClickListener()         {             @Override             public void onClick(View source)             {                 // 繫結指定Service                 bindService(intent, conn, Service.BIND_AUTO_CREATE);             }         });         unbind.setOnClickListener(new OnClickListener()         {             @Override             public void onClick(View source)             {                 // 解除繫結Service                 unbindService(conn);             }         });         getServiceStatus.setOnClickListener(new OnClickListener()         {             @Override             public void onClick(View source)             {                 // 獲取、並顯示Service的count值                 Toast.makeText(MainActivity.this,                         "Service的count值為:" + binder.getCount(),                         Toast.LENGTH_SHORT).show();  // ②             }         });     } }

相關推薦

ServiceIntentServiceActicity之間通訊

public class MainActivity extends Activity {     Button bind, unbind, getServiceStatus;     // 保持所啟動的Service的IBinder物件     BindService.MyBinder binder;  

ServiceIntentServiceServiceActivity之間通訊

Service /** * Android四大元件之一,Service 是長期執行在後臺的應用程式元件。 * Service 不是程序,也不是執行緒,它和應用程式在同一個程序中 * Service中不能

Android ServiceActivity之間通訊:通過Binder物件、Broadcast廣播

From:http://blog.csdn.net/xiaanming/article/details/9750689 From:http://blog.csdn.net/ameyume/article/details/6290137 From:http://blog.c

Java語言中的static類之間的總結

雙向 之間 臨時性 定義 進行 依賴 mat 如果 抽象類 一、static類   1、static類的定義    static被稱為靜態,可以用來修飾類的屬性或方法。    如果類的某個屬性,不管創建多少個對象,屬性的存儲空間只有唯一的一個,那麽這個屬性就應該用sta

Android查缺補漏--ServiceIntentService

srvice 程序 兩個 依賴 exc tasks stack info png Service的運行不依賴界面,即使程序被切換到後臺,Service仍然能夠保持正常運行。當某個應用程序進程被殺掉時,所有依賴於該進程的Service也會停止運行。 Service 分為啟動狀

Android中ServiceIntentService的差別

前言: ServiceTimeout(20 seconds)小概率型別Service在特定的時間內無法處理完成,會造成ANR — 應用程式無響應(ANR:Application Not Responding)的情況 ▲ 分析 : 避免ANR最核心的一點就是在主執行緒減少耗時操作。這時我們

Service IntentService的區別;

Srevice不是在子執行緒,在Srevice中做耗時操作一樣ANR,然後我們就會用到IntentService,IntentSrevice不但擅長做耗時操作,還有一個特點,用完即走; 在Srevice中做耗時輪詢操作,使用Handler: public class MyService e

ServiceIntentService 區別使用

背景 最近開發遇到一個小小的問題,因為沒怎麼用過IntentService ,所以對其生命週期也不很瞭解,還有工作原理。 intentService 詳解 intentService ——>> StartService 第一次 intent

類內的方法的呼叫 之間的方法呼叫

A類 {        a公開方法 {        b()√        c()√ }        b私有

模組模組之間通訊設計-元件設計思想

 --模組與模組之間的設計,除了大範圍的設計模式,更多不屬於模式的多種方法呼叫都可以通訊。         -- 如何設計低耦合的,高內聚的模組之間通訊?原則:         -- 1.用管理器用介

jdkjrejvm之間的關係

JDK是java的開發環境 Javadoc用於描述類或者方法的作用。可寫在類或者方法的上面。在註釋中用@開頭的東西就稱之為Javadoc文件標記,是JDK定義好的,如@auther,@version。 Javac.exe是把一個檔案生成class檔案,java.

【安卓物聯網】Arduino開發板Android之間通訊

關於Arduino開發板 Arduino是一款開源電子原型平臺,硬體部分是可以用來做電路連線的Arduino電路板。可以通過編寫程式,最後燒寫入開發板,配合上一些感測器,以及富有創造力的設計可以創造出很多神奇的東西。 在大三的時候,對物聯網的感興

android中fragmentactivity之間通訊原理以及例子

首先,如果你想在android3.0及以下版本使用fragment,你必須引用android-support-v4.jar這個包 然後你寫的activity不能再繼承自Activity類了,而是要繼承android.support.v4.app.FragmentA

Emoji表情圖示在iOSPHP之間通訊及MySQL儲存

在某個 iOS 專案中,需要一個伺服器來儲存一些使用者資料,例如使用者資訊、評論等,我們的伺服器端使用了 PHP+MySQL 的搭配。在測試過程中我們發現,使用者在 iOS 端裡輸入了 Emoji 表情提交到伺服器以後,PHP 無法在 MySQL 資料庫里正確保存,會遇到亂碼的問題。下面是原因探析和解決辦

Android ServiceIntentService區別及知識點詳細總結

Service 對於廣大的Android開發者來說算是耳熟能詳了,作為Android的四大元件之一,在我們的開發中也起著重要的作用,在Android面試中,Service相關的問題也是面試官問得比較多的,當別人問你,Service 到底是什麼的時候?你可能隨口就能答得上來,

Android ServiceIntentServiceService元件間通訊

Service元件 Service 和Activity 一樣同為Android 的四大元件之一,並且他們都有各自的生命週期,要想掌握Service 的用法,那就要了解Service 的生命週期有哪些方法,並且生命週期中各個方法回撥的時機和作用 什麼是service?service的基本概念 Servic

客戶端伺服器之間分別通過TCPUDP進行通訊

一:TCP/IP協議的應用一般採用客戶/伺服器模式,因此在實際應用中,必須有客戶和伺服器兩個程序,並且首先啟動伺服器,其系統呼叫時序圖如下。面向連線的協議(如TCP)的套接字系統呼叫如圖2.1所示: 注意:伺服器必須首先啟動,直到它執行完accept()呼叫,進入等待狀態後

廣播service activity 之間通訊

廣播service 和activity 之間的通訊 文章目錄 廣播service 和activity 之間的通訊 靜態註冊 動態註冊 在avtivity 裡面建立內部的廣播接收者 b

在ActivityService之間使用Binder回撥介面進行通訊

Activity和Service之間的通訊方式有多種:通過broadcast、擴充套件Binder類、使用Messenger、使用AIDL等。 擴充套件Binder類使用場景 如果你的服務僅供本地應用使用,不需要跨程序工作,則可以實現擴充套件Binder 類,讓你的客戶

serviceactivity之間通訊

         service和activity通訊一般可以通過繫結service獲取service的引用呼叫service的方法。如果service要訪問activity可以通過單利模式,最好是使用廣播接受者實現通訊最優方案。 下面介紹通過廣播接受者實現activit