Service實時向Activity傳遞資料案例

2021-07-22 20:12:12 字數 2181 閱讀 6018

演示乙個案例,需求如下:

在service元件中建立乙個執行緒,該執行緒用來生產數值,每隔1秒數值自動加1,然後把更新後的數值在介面上實時顯示。

步驟如下:

1、新建乙個android專案工程,取名為demo。

2、新建乙個service類,用來實時生產數值,供介面實時顯示。

package

com.ljq.activity;

import

import

android.content.intent;

import

android.os.ibinder;

import

android.util.log;

public

class countservice extends

service

catch

(interruptedexception e)

count++;

log.v("countservice", "count is " +count);

//傳送廣播

intent intent=new

intent();

intent.putextra("count", count);

intent.setaction("com.ljq.activity.countservice");

sendbroadcast(intent);}}

}).start();  }

@override

public

ibinder onbind(intent intent)

@override

public

void

ondestroy()   

}

3、新建乙個activity類,顯示資料。

package

com.ljq.activity;

import

import

android.content.broadcastreceiver;

import

android.content.context;

import

android.content.intent;

import

android.content.intentfilter;

import

android.os.bundle;

import

android.view.view;

import

android.widget.button;

import

android.widget.edittext;

public

class mainactivity extends

activity

@override

protected

void

ondestroy()

/*** 獲取廣播資料

* *

@author

jiqinlin

**/public

class myreceiver extends

broadcastreceiver }}

4、main.xml布局檔案

<?xml version="1.0" encoding="utf-8"?>

android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent">

android:layout_height="wrap_content"android:cursorvisible="false"android:editable="false"android:id="@+id/edittext"/>

5、清單檔案

<?xml version="1.0" encoding="utf-8"?>

package="com.ljq.activity"android:versioncode="1"android:versionname="1.0">

效果如下:

Activity向Fragment傳遞資料

我自己自定義乙個類,有很多成員變數,如何通過activity傳遞到fragment.我知道有種方法傳遞,但是是傳遞字串的,如果我要傳遞個複雜的資料型別,該用哪個方法,求具體點的操作 bundle bundle2 new bundle bundle2.putstring id activity傳送給m...

Activity之間傳遞資料

在activity之間傳遞資料時有兩種方式 1 serializable方式 序列化方式,即將乙個物件轉化為可儲存或者是可傳輸的內容,相應的將資料從記憶體卡中讀取出來是反序列化方式 2 parcelable方式 將乙個完整的物件分解成每乙個都可以用intent傳輸的物件。使用serializable...

Activity傳遞大資料

activity跳轉的時候我們一般通過intent bundle傳遞資料,但是在資料較大時就會出現transactiontoolargeexception異常,the binder transaction failed because it was too large.解決方式就是更換activit...