如何在android中创建多线程?
问题描述:
我是新来的android和我正在做一些应用程序可能会使用 多线程。 例如,应用程序线程可能会执行以下操作,假设线程为2 ;如何在android中创建多线程?
线程1 即使整个应用程序运行在前台线程上,也应该运行在任何时候都听取特定的短消息; 想象的要拦截的短信是“3456”时,发送 到手机这个消息,那么线程一个将被暂停 和线程2将被激活:
线程2 何时被激活线程,然后它会使用GPS追踪手机的位置 ,并将使用smsManager的实例发送回 的坐标(日志,经纬度)的手机,或者即使可能的谷歌地图回 到发送消息“3456”,然后线程的电话一个将被激活:激活:
* *如何使这发生任何想法?
答
看看服务。如果您在应用程序中使用服务,则很多情况下不必进行明确编码。
http://developer.android.com/reference/android/app/Service.html
编辑
在回应评论,这里就是我如何使用广播接收器
public class SomeActivity extends Activity {
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Example of pulling a string out of the Intent's "extras"
String msg = intent.getStringExtra("BroadcastString");
// ...more stuff
}
};
@Override
public void onResume()
{
super.onResume();
registerReceiver(receiver, new IntentFilter("SomeStringKeyForMyBroadcast"));
// ... other stuff
}
@Override
public void onPause()
{
super.onPause();
unregisterReceiver(receiver);
// ... other stuff
}
,并在我的服务做到从服务到活动通信...
public class SomeService extends Service {
Intent broadcastIntent = new Intent("SomeStringKeyForMyBroadcast");
private void someWorkerMethodInMyService()
{
// ... other stuff
broadcastIntent.putExtra("BroadcastString", "Some Data");
sendBroadcast(broadcastIntent);
// ... other stuff
}
类似的东西...
答
这个问题有两个答案。
如果您想通过的很长一段时间在后台运行一个线程,监听事件或运行一个经常性进程,然后Services是去
如果需要触发方式关闭一个新的线程来执行一次处理然后停止,然后查看AsyncTask,这是一个非常简单的方法,并且包含一个简单的方法来在过程中更新用户界面。
开发者文档包含一个优秀的网页约location in Android
下面是使用在我添加了一个广播接收机的一些服务information about receiving SMS in your app
THX的帮助:) – Mudasar 2011-04-01 18:19:26
IAM但问题是,我不能找到该广播接收机的注册命令。 – Mudasar 2011-04-01 18:21:46
我delcare我的BroadcastReceiver在我的活动,registerReceiver在onResume和unregisterReciever在onPause。在我的服务中,我传递了一个意图来发送广播。意图是用相同的字符串键实例化的,因为BroadcastReceiver是用 – Rich 2011-04-01 18:29:05