- 浏览: 24273 次
- 性别:
- 来自: 深圳
最近访客 更多访客>>
最新评论
-
KEIJIjava:
请加上 xml 文件 以便执行动作检验
重写dialog,CursorAdapter实现带多选的ListView
package com.ye.HttpClientTest;
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.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
public class HttpClientTest extends Activity implements Button.OnClickListener {
/** Called when the activity is first created. */
protected static final int GUIUPDATEIDENTIFIER = 0x101;
public TextView accept;
public Button send;
public EditText showEditText;
public ProgressBar progressBar;
public String urlString,dataString;
private String msg="";
public class HttpClientReceiver extends BroadcastReceiver{
//接收广播
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.v("HttpClientTest", "onReceive");
progressBar.setVisibility(View.GONE);
msg = intent.getStringExtra("msg");
accept.setText(msg);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i("HttpClientTest", "onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
accept= (TextView)findViewById(R.id.accept);
send = (Button) findViewById(R.id.send);
showEditText = (EditText) findViewById(R.id.show);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar.setVisibility(View.GONE);
send.setOnClickListener(this);
//注册广播器
IntentFilter filter=new IntentFilter("com.ye.service.msg");
HttpClientReceiver receiver=new HttpClientReceiver();
registerReceiver(receiver,filter);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("HttpClientTest", "onClick()");
progressBar.setVisibility(View.VISIBLE);
urlString = "http://api.showji.com/locating/?m="+showEditText.getText()+"&output=text";
Intent intent = new Intent("com.ye.HttpClientTest.HttpClientTestService");
Bundle bundle = new Bundle();
bundle.putString("url", urlString);
intent.putExtras(bundle);
intent.setClass(HttpClientTest.this, HttpClientTestService.class);
startService(intent);
}
}
package com.ye.HttpClientTest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
public class HttpClientTestService extends Service {
public String resultString = "";
public String urlString = "";
String websiteData = null;
DefaultHttpClient client;
Intent intent;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
Log.v("HttpClientTestService", "in onStart()");
Bundle bundle = intent.getExtras();
urlString = bundle.getString("url");
new Thread(mRunnable).start();
}
Runnable mRunnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Log.i("Thread", "Thread is start");
resultString = getUrlData(urlString);
sendMsg(resultString);
}
};
//onCreate在service初始化的时候被调一次,直到service生命周期的结束
@Override
public void onCreate() {
Log.i("HttpClientTestService", "in onCreate()");
client = new DefaultHttpClient();
intent = new Intent("com.ye.service.msg");
}
public String getUrlData(String url){
try {
URI uri = new URI(url);
HttpGet method = new HttpGet(uri);
HttpResponse res = client.execute(method);
InputStream data = res.getEntity().getContent();
websiteData = generateString(data);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return websiteData;
}
public String generateString(InputStream stream) {
InputStreamReader reader = new InputStreamReader(stream);
BufferedReader buffer = new BufferedReader(reader);
StringBuilder sb = new StringBuilder();
try {
String cur;
while ((cur = buffer.readLine()) != null) {
sb.append(cur + "\n");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
stream.close();
buffer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
// 发送广播信息
private void sendMsg(String msg){
Log.i("HttpClientTestService", "sendMsg()");
// 指定广播目标的 action (注:指定了此 action 的 receiver 会接收此广播)
// 需要传递的参数
intent.putExtra("msg", msg);
// 发送广播
this.sendBroadcast(intent);
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ye.HttpClientTest"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HttpClientTest"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="HttpClientTestService">
<intent-filter>
<action android:name="com.ye.HttpClientTest.HttpClientTestService"/>
</intent-filter>
</service>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
发表评论
-
Adapter深入理解与优化
2014-10-11 00:10 632一般是针对包含多个元 ... -
WebView添加cookie
2013-06-24 13:47 1584public void synCookies(String ... -
关闭输入法
2010-10-15 10:11 1510//关闭输入法 InputMethodManager i ... -
重写dialog,CursorAdapter实现带多选的ListView
2010-07-23 10:10 3743public class ContactDialog2 ext ... -
android解析json
2010-07-19 16:42 4434String msg = "{'Province' ... -
Android的三种网络联接方式
2010-07-06 19:39 12171、标准Java接口:java.net.*提供相关的类 //定 ... -
手机号码所属地查询
2010-07-06 10:17 972import java.io.BufferedReader; ... -
创建Android SD Card映像
2010-07-05 16:43 9121.在windows中打开“运行”,键入cmd进入命令行程序, ...
相关推荐
### 四大组件详解:Activity、Service、Content Provider与Broadcast Receiver #### 一、Activity **定义:** Activity是Android应用程序中的四大基本组件之一,它代表一个屏幕界面,用户可以直接与其进行交互。每...
ActivityServiceReceiver这个名字暗示了这个项目可能结合了Activity和Service的特点,即在Activity(锁屏界面)上响应某个事件(电源键二次点击),启动或控制一个Service来显示自定义界面。 在“Android_...
在Android应用开发中,Activity和服务(Service)是两个核心组件,它们之间经常需要进行数据交互。Activity作为用户界面,提供与用户的交互,而Service则在后台执行长时间运行的任务,不依赖于用户界面。本篇文章将...
在Android系统中,Activity、Service和Receiver是三个关键组件,它们构成了Android应用程序的核心架构。本文将深入探讨如何利用这三个组件实现电源键双击后显示自定义界面的功能。 首先,Activity是用户与应用交互...
虽然在上述描述中并未直接提及Service,但考虑到电源键事件可能需要长时间监听,使用Service可以确保即使用户离开应用,监听仍然继续。在Service中同样可以创建BroadcastReceiver并处理电源键事件。服务需要在适当...
在Android应用开发中,Activity和Service是两个关键组件。Activity代表用户界面,而Service则用于在后台执行长时间运行的任务,不直接与用户交互。在实际项目中,常常需要多个Activity与一个Service进行通信,比如本...
在Android系统中,Service接收器(Service Receiver)和Notification播放器是两个重要的概念,它们在构建应用程序时起着至关重要的作用。Service接收器允许应用程序在后台执行任务,即使用户没有直接与应用交互。而...
在Android应用开发中,Activity、BroadcastReceiver和Service是三大核心组件,它们构成了应用程序与用户交互、后台处理以及系统间通信的基础。本综合Demo旨在详细解析这三者如何协同工作,特别是涉及广播的静态注册...
在Android应用开发中,`Service`和`Activity`是两个重要的组件。`Service`用于在后台执行长时间运行的任务,而`Activity`则负责用户界面交互。在某些场景下,我们可能需要在`Service`和`Activity`之间传递数据,比如...
在Android应用开发中,Service和Activity是两个非常重要的组件。Service用于在后台执行长时间运行的任务,而Activity则负责用户界面交互。在某些场景下,我们可能需要Service与Activity之间进行数据传递,例如本例中...
在Android开发中,Service和Activity是两个非常重要的组件。Service主要负责在后台执行长时间运行的任务,而Activity则作为用户交互的界面。它们之间的通信是Android应用中常见的需求,例如播放音乐、下载数据等。本...
在Android应用开发中,Service和Activity是两个非常重要的组件。Service用于在后台执行长时间运行的任务,而Activity则负责用户界面交互。在某些场景下,Service和Activity之间需要进行数据共享,例如更新UI、传递...
Activity+service+receiver"项目中涉及的主要知识点。这个项目展示了如何巧妙地利用Android的系统广播、Service和Activity来实现自定义功能,对于进阶Android开发者来说,这是一个很好的学习案例。
在Android应用开发中,Service是后台运行的一种组件,它可以在用户界面关闭或者应用不处于前台时继续执行任务。Service主要用于长时间运行的操作,如播放音乐、网络通信等。然而,Service与Activity之间的通信是必不...
在Android应用开发中,Service和Activity是两个非常重要的组件,它们各自扮演着不同的角色。Service主要负责在后台执行长时间运行的任务,而Activity则用于与用户交互。本示例"Android Service与Activity交互"旨在...
在Android应用开发中,`Service` 是一个非常重要的组件,它允许应用程序在后台长时间运行,即使用户界面(UI,如Activity)已经关闭。本篇我们将深入探讨如何在Service与Activity之间进行交互,尤其是Service如何向...
在Android应用开发中,`Service`和`Activity`是两个重要的组件。`Service`用于在后台执行长时间运行的任务,而`Activity`则负责用户界面交互。有时,我们可能需要在`Service`中处理某些数据,并将这些数据传递给`...
这使得BroadcastReceiver成为在不同组件间通信的有效手段,包括Activity、Service等。 要实现两个Activity之间的数据传递,我们需要遵循以下步骤: 1. **创建BroadcastReceiver**: 首先,在需要发送数据的...
本示例主要讲解如何利用BroadcastReceiver来启动一个Service,同时启动一个Activity来显示服务启动成功的提示。 首先,理解BroadcastReceiver的原理。BroadcastReceiver是Android中的一个非常轻量级的组件,它用于...
为了保证即使应用被后台杀死,仍然能监听电源键事件,可以使用Service。创建一个Service,让其在后台运行,监听电源键事件。当ACTION\_SCREEN\_OFF到来时,Service可以保存一些状态信息,以便在ACTION\_SCREEN\_ON...