一个Demo学完Android中所有的服务

这篇博客通过一个实例详细介绍了Android中服务的使用,包括启动服务、绑定服务、广播接收器、通知和闹钟服务等。文章通过源代码分析,帮助读者理解Android服务的生命周期和不同启动方式,同时涉及了震动管理和通知栏的运用。
摘要由CSDN通过智能技术生成

注:这个例子来自“安卓巴士”,经阅读,理解,写此文章


说明:这个例子实现了Android中常见的许多服务,下面是实现的截图


接下来,以源代码的方式分析这个例子


1.MainActivity--主界面

这个类主要是实现用户所看到的这个Activity,其中包含了一系列的按钮,用户点击按钮执行相应的动作,所以在这个类中主要是对按钮的定义和对按钮绑定相应的监听器,下面是实现的代码:

package lovefang.stadyService;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.content.Intent;
import android.util.Log;
/**这是使用后台服务的学习例子*/
public class MainStadyServics extends Activity {
    	/**参数设置*/
	Button startServiceButton;// 启动服务按钮
	Button shutDownServiceButton;// 关闭服务按钮
	Button startBindServiceButton;// 启动绑定服务按钮
	Button sendBroadcast;// 使用广播
	Button notificationButton;// 使用通知功能
	Button alarmButton;// 使用闹钟
	Button handlerButton;// 使用handler
	Button asyncButton;// 使用异步加载
	Button phoneStateButton;// 查看手机状态
	Button callphoneButton;// 拨打电话
	Button vibratorButton;// 使用震动 
	CountService countService;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.v("MainStadyServics", "setContentView");
        setContentView(R.layout.main);
        getWidget();
        regiestListener();
    }
    	/**获得组件*/
    public void getWidget(){
    	startServiceButton = (Button)findViewById(R.id.startServerButton);
    	startBindServiceButton = (Button)findViewById(R.id.startBindServerButton);
    	shutDownServiceButton = (Button)findViewById(R.id.sutdownServerButton);
    	sendBroadcast = (Button)findViewById(R.id.sendBroadcast);
    	notificationButton = (Button)findViewById(R.id.notification);
    	alarmButton = (Button)findViewById(R.id.alarm);
    	handlerButton = (Button)findViewById(R.id.handler);
    	asyncButton = (Button)findViewById(R.id.async);
    	phoneStateButton = (Button) findViewById(R.id.phonestate);
    	callphoneButton = (Button) findViewById(R.id.callphone);
    	vibratorButton = (Button) findViewById(R.id.vibrator);
    }
    	/**为按钮添加监听*/
    public void regiestListener(){
    	startServiceButton.setOnClickListener(startService);
    	shutDownServiceButton.setOnClickListener(shutdownService);
    	startBindServiceButton.setOnClickListener(startBinderService);
    	sendBroadcast.setOnClickListener(broadcastReceiver);
    	notificationButton.setOnClickListener(notification);
    	alarmButton.setOnClickListener(startAlarm);
    	handlerButton.setOnClickListener(handler);
    	asyncButton.setOnClickListener(async);
    	phoneStateButton.setOnClickListener(phonestate);
    	callphoneButton.setOnClickListener(callphoneEvent);
    	vibratorButton.setOnClickListener(vibrator);
    }
    	/**启动服务的事件监听*/
    public Button.OnClickListener startService = new Button.OnClickListener(){
    	public void onClick(View view){
    			/**单击按钮时启动服务*/
    		Intent intent = new Intent(MainStadyServics.this,CountService.class);
    		startService(intent);
    		Log.v("MainStadyServics", "start Service");
    	}
    };
    	/**关闭服务*/
    public Button.OnClickListener shutdownService = new Button.OnClickListener(){
    	public void onClick(View view){
    			/**单击按钮时启动服务*/
    		Intent intent = new Intent(MainStadyServics.this,CountService.class);
    			/**退出Activity是,停止服务*/
    		stopService(intent);
    		Log.v("MainStadyServics", "shutDown serveice");
    	}
    };
    	/**打开绑定服务的Activity*/
    public Button.OnClickListener startBinderService = new Button.OnClickListener(){
    	public void onClick(View view){
    			/**单击按钮时启动服务*/
    		Intent intent = new Intent(MainStadyServics.this,UseBrider.class);
    		startActivity(intent);
    		Log.v("MainStadyServics", "start Binder Service");
    	}
    };
    	/**打开广播学习的按钮*/
    public Button.OnClickListener broadcastReceiver = new Button.OnClickListener(){
    	public void onClick(View view){
    		Intent intent = new Intent(MainStadyServics.this,UseBroadcast.class);
    		startActivity(intent);
    		Log.v("MainStadyServics","start broadcast");
    	}
    };
    	/**打开通知*/
    public Button.OnClickListener notification = new Button.OnClickListener(){
    	public void onClick(View view){
    		Intent intent = new Intent(MainStadyServics.this, UseNotification.class);
    		startActivity(intent);
    		Log.v("MainStadyService ","start Notification");
    		
    	}
    };
    	/**使用闹钟*/
    public Button.OnClickListener startAlarm = new Button.OnClickListener(){
    	public void onClick(View view){
    		Intent intent = new Intent(MainStadyServics.this, UseAlarmManager.class);
   
  • 14
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 35
    评论
简明、完整、全面的安卓开发demo集合,包含如下示例 1、LinearLayout Button、RadioGroup、 CheckBox 2、TableLayout 3、FrameLayout 霓虹灯效果 4、RelativeLayout 梅花效果 5、自定义view跟着触点走的小球 6、 ListView 列表视图 7、WebView web视图 8、ToggleButton 动态布局效果 9、AnalogClock 、 DigitalClock and Chronometer 时钟和数字日期 10、AutoCompleteTextView 根据输入自动补充可能的全部 11、Spinner View 选择框(弹出框形式选择) 12、DatePicker TimePicker View 日期时间选择器 13、ProgressBar View 普通进度条、显示在标题栏上的进度条 14、RatingBar View 评级 15、 SeekBar 拖动条,音量调节效果 16、ScrollView 、HorizontalScrollView 垂直和水平滚动条 17、ScrollView 、HorizontalScrollView 垂直和水平滚动条 18、ExpandableListView 分组可展开收缩的ListView 19、Notification 状态栏通知 20、GridView、ImageSwitcher 21、SmsManager 消息管理器,发短信(这里是模拟器只能给其它模拟器发短信) 22、Intent Action、Category属性 测试 23、系统 Action、Category属性 24、ClipDrawable 徐徐展开的风景 25、AnimationDrawable 会动的图片 26、Menu、SubMenu、ContextMenu xml配置menu 27、Attribute 自定义view的duration属性 控制图片的透明度 28、Bitmap、BitmapFactory 图形与图像处理 29、Canvas 绘制自定义图形 30、Canvas 采用双缓存实现画图板 31、SharedPreference 简单的key-value数据存取 32、SQLiteDatabase 安卓客户端的嵌入式数据库 33、GestureDetector + ViewFlipper实现翻页效果 34、GestureLiberay 自定义手势 35、GestureLiberay 通过自定义的手势实现用户操作 36、TextToSpeech 语音朗读 37、ContentProvider、ContentResolver 应用之间共享数据 38、 Service 相当于没有界面的activity 39、Activity与Service运行通信 40、Service 相当于没有界面的activity 41、AIDL Service android的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程不能操作UI线程的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯 45、下载状态栏显示下载进度 46、Gallery3d效果 47、ListView 上拉加载更多效果 48、异步加载图片的二级缓存技术 49、QQ的好友列表展示效果 50、Fragment + ViewPager实现tab滑动切换 51、能够显示在桌面前面的的歌词效果 52、activity切换特效
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值