用Intent给Service传数据

对数通过intent传递,代码如下:

MainActivity

 1 package com.example.zhangmeng.servicedemo;
 2 import android.content.Intent;
 3 import android.support.v7.app.AppCompatActivity;
 4 import android.os.Bundle;
 5 import android.view.View;
 6 import android.widget.EditText;
 7
 8 public class MainActivity extends AppCompatActivity implements View.OnClickListener{
 9     private EditText editText;
10     @Override
11     public void onClick(View v) {
12         switch (v.getId()){
13             case R.id.button_StartService:
14                 Intent intent=new Intent(MainActivity.this,MyService.class);
15                 intent.putExtra("data",editText.getText().toString());
16                 startService(intent);
17                 break;
18             case R.id.button_StopService:
19                 stopService(new Intent(MainActivity.this,MyService.class));
20
21         }
22
23     }
24
25     @Override
26     protected void onCreate(Bundle savedInstanceState) {
27         super.onCreate(savedInstanceState);
28         setContentView(R.layout.activity_main);
29         findViewById(R.id.button_StartService).setOnClickListener(this);
30         findViewById(R.id.button_StopService).setOnClickListener(this);
31         editText=(EditText) findViewById(R.id.et);
32
33
34
35
36     }
37 }

MyService.class

 1 package com.example.zhangmeng.servicedemo;
 2 import android.app.Service;
 3 import android.content.Intent;
 4 import android.os.IBinder;
 5 public class MyService extends Service {
 6     private boolean running=false;
 7     private String data="This is the data";
 8
 9     @Override
10     public void onCreate() {
11         super.onCreate();
12         running=true;
13         new Thread(){
14             @Override
15             public void run() {
16                 super.run();
17                 while (running){
18                     System.out.println(data);
19
20                     try {
21                         sleep(1000);
22                     } catch (InterruptedException e) {
23                         e.printStackTrace();
24                     }
25
26                 }
27             }
28         }.start();
29     }
30
31     @Override
32     public int onStartCommand(Intent intent, int flags, int startId) {
33         data=intent.getStringExtra("data");
34         return super.onStartCommand(intent, flags, startId);
35     }
36
37     @Override
38     public void onDestroy() {
39         super.onDestroy();
40         running=false;
41     }
42
43     @Override
44     public IBinder onBind(Intent intent) {
45         return null;
46     }
47
48 }

MainActivity.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical"    tools:context="com.example.zhangmeng.servicedemo.MainActivity">

<EditText    android:id="@+id/et"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:text="默认信息"/>    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="启动服务"        android:id="@+id/button_StartService" />

    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="停止服务"        android:id="@+id/button_StopService" />

</LinearLayout>
时间: 2024-12-31 07:25:47

用Intent给Service传数据的相关文章

android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口

Parcelable,内存单位,跨进程使用,或者intent传递对象的时候使用.android中用Intent传数据,如果用传递的是一个对象,就将对象实现Parcelable接口,而不是将对象序列化. /** * 预登记 出席领导回传给预登记页面 Javabean * Created by COCO on 2017/3/4. */ public class GovernmentTakeLeaderInfo implements Parcelable{//Parcelable,内存单位,跨进程使用

android后台上传数据demo

1.界面启动后开启服务 public class UploadlogActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent inte

Amazon MWS 上传数据 (一) 设置服务

Amazon 上传数据的流程为: 通过 SubmitFeed 操作.加密标头和所有必需的元数据(包括 FeedType 的值在内),来提交 XML 或文本型数据文件.正如亚马逊 MWS的所有提交内容一样,您还必须包括验证信息.SubmitFeed 操作可返回 FeedSubmissionId 的值,您可以使用该值,通过 GetFeedSubmissionList 操作,对上传数据状态进行定期检查. 如果亚马逊 MWS仍在处理请求,则 GetFeedSubmissionList 操作的 FeedP

Android Studio开发基础之启动Service,并通过从Activity向Service传递数据

本实例演示启动Service,并通过从Activity向Service传递数据,新建一个Service,并敲如下代码: package com.example.lhb.startservice; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.view.ViewDebug; import android.widget.Toast; public

ASIHTTPRequest框架使用(4)--上传数据

数据上传是通过ASIFormDataRequest类实现的.相当于HTML的表单,因此ASIFormDataRequest请求对象的作用相当于提交表单数据,默认是Post请求方法. - (IBAction)onClick:(id)sender { NSString *strUrl = @"http://iosbook3.com/service/upload.php"; NSURL *url = [NSURL URLWithString:[strUrl URLEncodedString]

Amazon MWS 上传数据 (三) 提交请求

前面介绍了设置服务和构造请求,现在介绍提交请求. 上传数据,查询上传操作的工作状态,和处理上传操作返回的报告操作使用的Amazon API 分别为:SubmitFeed(),FeedSubmissionListRequest(),GetFeedSubmissionResult(). SubmitFeed()-- 提交请求,代码示例: 1 #region AmazonSubmitFeed 2 /// <summary> 3 /// 提交请求 4 /// </summary> 5 pu

layer.js子窗口关闭并传数据到父窗的方法

昨晚整了很晚,一直找不到方法.去官网api看了好久,又在网上搜了很久 始终找不到答案.今天自己终于找到了方法. 难点:因为 确认和取消按钮都是在父窗 调用js生成的按钮.只能从父窗回调的时候去去数据并关闭子窗口.并不是子窗口自己关闭并把数据传到父窗.而网上给出的很多答案都是子窗口自己关闭并传数据到父窗的方法. [贴出我自己的代码,大概实现了流程.具体自己根据情况修改] 我的代码功能是 子窗口要传递数组给父窗,具体复杂的数据格式(如json等)类似 1.子窗口代码 var urls; functi

datatable和datagridview传数据

在以前用datagridview的时候,就是把datagridview.dataSource= list,然后再来一下this.dgvInBogieInfo.Columns["ID"].HeaderText = "张三",这样就能实现显示一个列了,但是最近做项目的时候,一直在接触datagridview,所以对这个控件又有了许多新的用法,在这里总结一下. 1.显示 首先说一下显示,其实datagridview1的数据源可以有种,不止List<>集合,还有

KETTLE:mongdb与mysql互传数据

注:部分内容引用了 http://blog.sina.com.cn/s/blog_4ac9f56e0101g881.html 1.mongodb传数据到mysql 1)在kettle中,mongodb input组件. 2)编辑组件 输入连接信息 选择数据库 写查询语句 选择字段.上面的复选框选择是否输入json格式,这时不选. 点击get fileds,获取字段对应关系. $代表根目录 .代表子目录 []代表数组中的值,例如: {"data" :{ "museum"