- 浏览: 281797 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
xianwubiao:
坑爹。。。。。
IOS之简单选择器UIPickerView(省份+城市) -
yanransysu:
为啥结果没有显示图片嘞,我都已经把你共享的文件给放进去了?
IOS之集合视图UICollectionView -
ajxjwha:
获取的总是空,为什么?!
IOS之简单选择器UIPickerView(省份+城市) -
如果宅:
附件下载下来是图片!
IOS之集合视图UICollectionView -
ikrboy:
小红星凯 写道找不到pickview 那个协议怎么搞?步骤写得 ...
IOS之简单选择器UIPickerView(省份+城市)
BroadcastReceiver捕捉到信息后关闭服务
public class ServiceSendCast extends Activity { /* 建立自定义mServiceReceiver对象 */ private MyServiceReceiver mReceiver01; private TextView mTextView01; private Button mButton01, mButton02; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.service_send_cast); mTextView01 = (TextView) findViewById(R.id.myTextView1); mButton01 = (Button) findViewById(R.id.myButton1); mButton02 = (Button) findViewById(R.id.myButton2); /* 启动系统服务(Service) */ mButton01.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { /* 开始执行后台服务(Service) */ Intent i = new Intent(ServiceSendCast.this, SendService.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startService(i); mMakeTextToast("启动系统服务", false); } }); /* 终止系统服务(Service) */ mButton02.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { /* 指定终止执行后台服务(mService1) */ Intent i = new Intent(ServiceSendCast.this, SendService.class); /* 关闭系统服务 */ if (stopService(i) == true) { mMakeTextToast("已关闭系统服务", false); } else { /* 显示关闭服务失败 */ mTextView01.setText("关闭服务失败 "); } } }); } /* 建立继承告BroadcastReceiver的 mServiceReceiver类接受广播讯息 */ public class MyServiceReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { try { /* 取并来自后台服务所Broadcast的参数 */ Bundle bunde = intent.getExtras(); String strParam1 = bunde.getString("STR_PARAM1"); /* 将从Service里传来的广播讯息显示于TextView */ mTextView01.setText(strParam1); Intent i = new Intent(ServiceSendCast.this, SendService.class); if (stopService(i) == true) { mMakeTextToast("已关闭系统服务", true); } } catch (Exception e) { mTextView01.setText(e.toString()); e.getStackTrace(); } } } public void mMakeTextToast(String str, boolean isLong) { if (isLong == true) { Toast.makeText(ServiceSendCast.this, str, Toast.LENGTH_LONG).show(); } else { Toast.makeText(ServiceSendCast.this, str, Toast.LENGTH_SHORT) .show(); } } @Override protected void onResume() { try { /* 前景程序生命周期开始 */ IntentFilter mFilter01; /* 自定义要过滤的广播讯息(DavidLanz) */ mFilter01 = new IntentFilter(SendService.HIPPO_SERVICE_IDENTIFIER); mReceiver01 = new MyServiceReceiver(); registerReceiver(mReceiver01, mFilter01); } catch (Exception e) { mTextView01.setText(e.toString()); e.getStackTrace(); } super.onResume(); } protected void onPause() { /* 前景程序生命周期结束,解除刚守系统注册的Receiver */ unregisterReceiver(mReceiver01); super.onPause(); } }
public class SendService extends Service { private Handler objHandler = new Handler(); private int intCounter = 0; public static final String HIPPO_SERVICE_IDENTIFIER = "ComeFromServer"; /* 线程Tasks每1秒执行几次 */ private Runnable mTasks = new Runnable() { public void run() { intCounter++; /* 当后台Service执行5秒后,发生自定义的广播讯息 */ if (intCounter == 5) { Intent i = new Intent(HIPPO_SERVICE_IDENTIFIER); i.putExtra("STR_PARAM1", "来自Service的广播信息"); sendBroadcast(i); } Log.i("HIPPO", "Service Running Counter:" + Integer.toString(intCounter)); objHandler.postDelayed(mTasks, 1000); } }; public IBinder onBind(Intent arg0) { return null; } public void onStart(Intent intent, int startId) { /* 服务开始执行,启用线程 */ objHandler.postDelayed(mTasks, 1000); super.onStart(intent, startId); } public void onDestroy() { objHandler.removeCallbacks(mTasks); super.onDestroy(); } }
manifest.xml
<activity android:name=".ServiceSendCast" android:label="@string/app_name"> </activity> <service android:name=".SendService" android:exported="true" android:process=":remote"></service>
发表评论
-
Gesture获取屏幕手写事件并显示相应信息
2012-03-13 16:53 1413private GestureLibrary ge ... -
SensorManager判断手机指向方向
2012-03-13 16:29 2916public class GetPosition ext ... -
BroadcastReceiver开机便运行的程序
2012-03-13 11:29 1173public class BeginFromBoo ... -
BroadcastReceiver监听短信发送的状态
2012-03-12 20:22 4685添加权限 <uses-permission ... -
BroadcastReceiver一个星期每天更换不同的壁纸
2012-03-12 12:22 1471添加权限 <uses-permission ... -
SensorEventListener手机翻背静音震动
2012-03-12 12:23 1511添加震动权限 <uses-permission ... -
AudioManager黑名单来电自动静音
2012-03-12 12:23 2440添加权限 <uses-permission ... -
AlarmManager可定时响起的闹钟
2012-03-11 13:22 1839三部分 1.MyClock.java(设置界面) 2.Ca ... -
PhoneState查看拨号器状态及显示联系人信息
2012-03-11 10:33 1279添加权限 <uses-perm ... -
Service与Runnable开始与停止系统服务
2012-03-11 10:33 3380两部分ControlService.java(Ac ... -
查看Battery剩余电量
2012-03-10 14:06 1059private int intLevel; p ... -
BroadcastReceiver实时短信提醒
2012-03-10 13:31 1106添加权限 <uses-permission ... -
Gesture建立手写笔画图案
2012-03-10 00:34 1060添加权限 <uses-permission ... -
TelephonyManager获取电信网络和手机信息
2012-03-10 00:34 1846添加权限 <uses-permission ... -
任务管理器查看正在运行的程序和服务
2012-03-09 10:15 1291添加权限 <uses-perm ... -
SIM获取手机SIM卡的信息
2012-03-09 09:49 1402添加权限: <uses-permission ... -
Wallpaper获取当前、修改和还原自带壁纸
2012-03-09 09:50 2797添加权限: <uses-permission ... -
ContactsContract获取联系人信息及双向查找联系人信息
2012-03-08 12:24 2596添加权限: <uses-permission ... -
Vibrator结合ToggleButton控件的震动提示
2012-03-08 12:24 1235添加权限: <uses-permission ... -
通过Gmail发送邮件
2012-03-07 14:37 1029private EditText mEditTex ...
相关推荐
本教程将详细讲解如何在Service中传递数据给Activity。 首先,我们需要理解Android中的绑定服务(Bound Service)和启动服务(Started Service)两种类型。绑定服务允许Activity直接与Service交互,通过接口调用...
6. ** 广播Intent**:发送广播Intent是Service向Activity传递信息的一种常见方式。Service通过sendBroadcast()方法发送广播,Activity通过注册BroadcastReceiver来接收广播。BroadcastReceiver通常在AndroidManifest...
当Service需要将数据传递给Activity时,传统的Binder机制可能并不适用,因为Service并不直接知道哪个Activity需要接收数据。这时,广播(Broadcast)就派上了用场。 BroadcastReceiver是Android中的另一个组件,...
1. **使用Intent**: 可以通过发送Broadcast Intent的方式,让Service广播一条消息,然后在Activity中注册一个BroadcastReceiver来接收这个消息。首先在Service中创建并发送Intent,然后在Activity中注册...
在某些场景下,我们可能需要在`Service`和`Activity`之间传递数据,比如`Service`执行完一些操作后,将结果传递给`Activity`进行展示。本篇文章将详细讲解如何实现`Service`到`Activity`的数据传递。 1. **创建...
Service可以通过实现IBinder接口,将接口暴露给客户端,从而让客户端调用Service的方法获取信息。客户端可以通过`bindService()`方法绑定Service,并在`onServiceConnected()`回调中得到IBinder对象,进一步获取...
本教程将详细讲解如何通过Service发送广播通知Activity修改UI的内容。 首先,让我们理解广播的基本概念。在Android系统中,广播是一种全局的消息分发机制,允许应用程序之间进行异步通信。当一个广播发送出去时,...
通过创建BroadcastReceiver,注册它,发送Broadcast,以及在接收端处理数据,我们可以轻松地在两个不同的Activity之间传递信息。注意,为了优化资源使用,记得在适当的时候注销BroadcastReceiver。
在开始下载时,读取这些信息并传递给OkHttp,使其从对应位置开始请求数据。 4. **请求头Range**: 在OkHttp中,通过设置`Request`的`Header`,可以指定从哪个位置开始下载。例如,`Range: bytes=1024-`表示从第...
当我们启动或绑定Service时,可以使用Intent对象将数据传递给Service。同样,Service也可以通过Intent返回结果到Activity。首先,在Service中创建一个BroadcastReceiver,用于接收发送的数据,并在适当的时候(例如...
4. 创建PendingIntent:使用PendingIntent与Service关联,然后将其传递给`AlarmManager`。 四、启动Activity 尽管通常不建议直接用`AlarmManager`启动Activity,但有时可能需要在特定时间唤醒用户界面。这通常适用...
如果前一个Receiver返回`BroadcastReceiver.RESULT_ABORTED`,广播会被终止,不会传递给其他Receiver。 4. **本地广播(Local Broadcast)** 本地广播只在应用程序内部传播,不涉及到系统级别的广播,这使得它更加...
这种机制使得Service可以在后台无须直接与Activity交互的情况下传递信息,实现组件间的解耦。 **Service与Activity交互的场景:** 1. **启动Service:** Activity可以通过startService()方法启动一个Service,...
Intent 用于启动活动(Activity)、服务(Service)或者广播接收器(BroadcastReceiver),并能传递数据和执行操作。对于初学者来说,理解 Intent 的基本用法和应用场景是至关重要的。 一、Intent 的种类 1. 显式 ...
接下来,我们创建一个Intent,用于在Service和BroadcastReceiver之间传递信息。Intent可以携带额外的数据,例如更新后的数据或更新状态。在Service中,我们使用sendBroadcast(Intent)方法发送广播;在...
为了将数据从Service传递给Activity,我们可以使用Intent的extras字段携带信息。在Service中设置BroadcastIntent的extras,然后在Activity的BroadcastReceiver中读取这些数据。这种方式确保了数据的安全传输。 此外...
在此,我们将深入探讨同步广播的概念、消息结构以及其在实际应用中的传递方法。 **同步广播的概念** 同步广播是一种特殊的广播类型,它要求接收广播的BroadcastReceiver必须在接收到广播后立即完成处理,否则系统会...
1. **Intent**: 这是最常见的通信方式,通过Intent对象传递数据给Service。启动Service时,可以在Intent中添加额外的数据,Service通过onStartCommand()方法获取这些数据。同样,Service可以通过...
Service在一个后台线程中生成数据,通过Intent的Broadcast机制将数据传递给Activity,Activity通过BroadcastReceiver接收到数据并更新UI。这种方法使得Service可以在不依赖于Activity的生命周期情况下,依然能将数据...
应急广播国标协议,全称为《国家应急...通过深入理解应急广播国标协议中的IP数据包处理方式,我们可以更好地设计和优化应急广播系统,确保在紧急情况下,信息能够迅速、准确、安全地传递给公众,发挥其应有的社会作用。