Android -- 启动Service并传递数据
-
本文主要记录Activity传递数据到Service。
1、效果图
2、通过以上效果图,可以看出activity页面的数值改变,相应后台service输出的数值也跟着改变。
3、核心代码如下,看代码中的38行,使用Intent作为载体,装载activity页面上的数据。?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748<code
class
=
"hljs"
java=
""
>
package
com.example.connectservice;
import
android.os.Bundle;
import
android.app.Activity;
import
android.content.Intent;
import
android.view.Menu;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.EditText;
public
class
MainActivity
extends
Activity
implements
OnClickListener {
private
EditText edit;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.startService).setOnClickListener(
this
);
findViewById(R.id.stopService).setOnClickListener(
this
);
edit = (EditText) findViewById(R.id.editText1);
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return
true
;
}
@Override
public
void
onClick(View v) {
switch
(v.getId()) {
case
R.id.startService:
Intent i =
new
Intent(
this
, MyService.
class
);
i.putExtra(data, edit.getText().toString());
startService(i);
break
;
case
R.id.stopService:
stopService(
new
Intent(
this
, MyService.
class
));
break
;
}
}
}
</code>
4、Service代码如下,详见代码的21行,我们在onStartCommand方法中通过intent参数获取activity传过来的值。
?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152<code
class
=
"hljs"
java=
""
>
package
com.example.connectservice;
import
android.app.Service;
import
android.content.Intent;
import
android.os.IBinder;
import
android.widget.EditText;
public
class
MyService
extends
Service {
String data;
boolean
running =
false
;
@Override
public
IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return
null
;
}
@Override
public
int
onStartCommand(Intent intent,
int
flags,
int
startId) {
data = intent.getStringExtra(data);
return
super
.onStartCommand(intent, flags, startId);
}
@Override
public
void
onCreate() {
super
.onCreate();
running =
true
;
new
Thread() {
public
void
run() {
while
(running) {
System.out.println(Service中获取到的数据: + data);
try
{
Thread.sleep(
1000
);
}
catch
(InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}.start();
}
@Override
public
void
onDestroy() {
super
.onDestroy();
running =
false
;
}
}
</code>
?12345678910111213141516<code
class
=
"hljs"
xml=
""
><manifest android:versioncode=
"1"
android:versionname=
"1.0"
package
=
"com.example.connectservice"
xmlns:android=
"http://schemas.android.com/apk/res/android"
><uses-sdk android:minsdkversion=
"8"
android:targetsdkversion=
"21"
>
<intent-filter>
<category android:name=
"android.intent.category.LAUNCHER"
>
</category></action></intent-filter>
</activity>
<service android:enabled=
"true"
android:exported=
"true"
android:name=
".MyService"
>
</service>
</application>
</uses-sdk></manifest>
</code>
转载于:https://www.cnblogs.com/cityking/p/a017.html
Android -- 启动Service并传递数据相关推荐
- android 启动服务同时传递数据,Android Studio开发基础之起动Service,并通过从Activity向Service传递数据...
Android Studio开发基础之启动Service,并通过从Activity向Service传递数据 本实例演示启动Service,并通过从Activity向Service传递数据,新建一个Se ...
- android 剪切板广播发送者,Android使用剪切板传递数据
Android使用剪切板传递数据 发布时间:2020-08-30 14:15:07 来源:脚本之家 阅读:62 作者:Ben_love_Nicole 在Activity之间传递数据还可以利用一些技巧, ...
- Android在片段之间传递数据
In this tutorial, we'll be developing an application that contains TabLayout, ViewPager and Fragment ...
- android 启动service报错,Android小经验
转载自:http://mp.weixin.qq.com/s?__biz=MzA4MjU5NTY0NA==&mid=404388098&idx=1&sn=8bbbba7692dc ...
- android finish()传参数,48. (android开发) activity间传递数据(打开浏览器、拨号盘、传参)...
在 android 中多个 activity 中互相访问是常见的一种操作,比如:打开系统浏览器.显示系统拨号盘等等. 做这些操作的时候,自然是需要传递一些数据过去,比如:要打开的网址.要拨打的电话号码 ...
- android启动Service和ForegroundService
最近有个需求需求"开启前台服务,然后进行持续定位" 没有用过特此记录一下 之前用的都是Service class SocketService : Service() {privat ...
- android 不同activity之间传递数据
1> 不同activity之间传递数据: Intent intent=new Intent(); intent.setClass(activity1.this,activity2.class); ...
- Android 中activity中传递数据的方式
方式一 通过Intent进行数据传递(日后更新) 方式二 通过剪切板进行数据的传递 首先在第一个Activity中,设置所要进行传递的数据 /*** 通过剪贴板传递字符串数据的操作**/private ...
- 5、android使用意图传递数据之全局变量传递
实例: 1.layout的代码 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/ap ...
最新文章
- JS 获取指定时间的时间戳(兼容各个浏览器)
- 河南理工大学python挂科率_河南高校2021届保研率排名,上榜仅有10所,河南理工大学第6...
- 如何攻破容器持久化存储挑战?
- CPU是什么?GPU是什么?有图有真相。
- redis中KEYS替代命令
- 限定通配符和非限定通配符_为什么我不信任通配符以及为什么我们仍然需要通配符...
- python绘制剖面图_用python绘制剖面图
- html 页面怎么加载富文本,UILabel加载html富文本
- php上传虚假图片,解决PHP上传多个图片并校验的代码问题
- c++中两个头文件定义同名类的解决办法
- VB.Net程序设计:分页控件
- 金蝶kiss专业版财务软件下载。
- 2013总结之“酒肉穿肠过,佛在心中坐”
- 京东返利PHP采集关键字,PHP实现京东API的授权HASH算法
- TLF 使用详解!!
- 不同计算机通过家庭组无法共享的是,windows7开家庭组与其他版本系统共享文件失败的解决方法...
- Unity中的3D数学—02向量与矩阵
- DSP28335 CAN模块例程
- Android 从WebServer 获取PDF转图片
- 这样写的邮件,客户回复率几乎高达100%
热门文章
- 关于power shell
- pfx导入后仍然打不开加密文件_天正CAD图纸加密和解密方法
- python名称空间_python基础:名称空间与作用域
- 吐槽 git 的一些愚蠢的接口设计: add/delete/remove/rm 选项随心所欲, 缺乏一致性
- 开源GIS(十五)——openlayers通过geoserver中WFS删除要素
- JavaWeb——Mybatis进阶mapper代理
- golang log模块之log4go使用介绍
- 【java学习之路】(java SE篇)012.网络编程
- 每天Leetcode 刷题 初级算法篇-数学问题-计数质数
- 安装JDK失败,再次安装时出现已经安装过了的,解决办法