android Hander Service 广播的综合使用案例
来源:互联网 发布:暗黑网络发生的事件 编辑:程序博客网 时间:2024/05/16 08:28
android Hander Service 广播的综合使用案例
原理:在主activity里启动一个服务,这个服务通过Handler每一秒发送一条广播,并在主activity里注册一个广播接受者(BroadcastReceiver),这个广播接收者的作用在于搜到server的广播,并是的i加1,并且把i的值设置到textview,达到美妙加1的效果
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
Button button1;
Button button2;
TextView textView;
publicstaticint i = 0;
publicstatic Handlerhandler;
Intent intent1;
MyBroadcastReceiver mybroadcast;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button)findViewById(R.id.start);
button2 = (Button)findViewById(R.id.stop);
textView = (TextView)findViewById(R.id.number);
button1.setOnClickListener(new OnClickListener() {
@Override
publicvoid onClick(View v) {
handler=new Handler(){
@Override
publicvoid handleMessage(Message msg) {
super.handleMessage(msg);
sendBroadcast(new Intent().setAction("ACTION"));
this.sendEmptyMessageDelayed(1, 1000);
}
};
Log.d("--","-------------------" +"onclick_start");
intent1 =new Intent(MainActivity.this, MyService.class);
startService(intent1);
IntentFilter intentFilter =new IntentFilter();
mybroadcast =new MyBroadcastReceiver();
intentFilter.addAction("ACTION");
MainActivity.this.registerReceiver(mybroadcast, intentFilter);
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
publicvoid onClick(View v) {
unregisterReceiver(mybroadcast);
stopService(intent1);
if(handler !=null){
handler.removeMessages(1);
handler =null;
}
}
});
}
class MyBroadcastReceiverextends BroadcastReceiver{
@Override
publicvoid onReceive(Context context, Intent intent) {
i++;
if (intent.getAction().equals("android.intent.action.DATE_CHANGED")) {
} else if (intent.getAction().equals("ACTION")) {
}
textView.setText(i + "");
}
}
}
定义一个Service
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class MyService extends Service{
@Override
public IBinder onBind(Intent intent) {
returnnull;
}
@Override
publicvoid onCreate() {
super.onCreate();
}
@Override
publicint onStartCommand(Intent intent,int flags,int startId) {
MainActivity.handler.sendEmptyMessageDelayed(1, 1000);
returnsuper.onStartCommand(intent, flags, startId);
}
@Override
publicvoid onDestroy() {
super.onDestroy();
if(MainActivity.handler !=null){
MainActivity.handler.removeMessages(1);
MainActivity.handler =null;
}
}
}
</activity>
<serviceandroid:name="com.example.myhandlertest.MyService"></service> //注意AndroidManifest.xml文件中必须加上这一行
</application>
运行的效果图:
- android Hander Service 广播的综合使用案例
- Android广播、Service、Activity综合使用
- Android广播、Service、Activity综合使用
- Android Hander的使用
- android hander 类的使用
- android Hander使用
- Android——Hander和AsyncTask的使用
- android CoordinatorLayout使用(综合案例)
- Android Hander机制的理解
- android Hander 定时器的应用
- android-Hander的用法大全
- 【代码】Android -- Activity 、Service、BroadcastReceiver 综合使用
- 综合案例:运算符的使用
- BindService与StartService的综合使用案例
- android hander
- Android--广播的类型及拦截有序广播案例
- Android--有序广播的实例解析--案例《拦截有序广播》
- 有序广播的实例解析--android案例《拦截有序广播》
- POCO C++库学习和分析 -- UUID
- 机房重构一路走来——初步总结
- J2EE概述
- OMAPL138/AM1808开发笔记
- jsp九大默认对象
- android Hander Service 广播的综合使用案例
- request对象主要方法
- OMAPL138/AM1808引脚复用配置
- 常量指针和指针常量
- Xcode 真机程序发布测试
- 动态与静态INCLUDE的区别
- 万能批处理工具包最终版
- Consignment Inventory in Oracle EBS
- cocos2d学习(1)使用多个场景