在 Android 中进行线程处理的最简单方法是使用 AsyncTask。
我不确定您是否愿意为这些方法中的每一个传递一个参数,或者您是否希望从它们那里得到任何回报;但让我们假设您没有通过或期待任何事情。
public void onReceive(Context context, Intent intent) {
// start the first method
new AsyncTask<Integer, Integer, Integer>() {
@Override
protected Integer doInBackground(Integer... params) {
getA();
}
}.execute();
// start the second method
new AsyncTask<Integer, Integer, Integer>() {
@Override
protected Integer doInBackground(Integer... params) {
getB();
}
}.execute();
// start the third method
new AsyncTask<Integer, Integer, Integer>() {
@Override
protected Integer doInBackground(Integer... params) {
getC();
}
}.execute();
}
<Integer, Integer, Integer> 参数代表您要传递给任务的参数类型、进度更新类型和返回结果类型。
如果您想为每个方法传递一些参数,请将第一个 Integer 更改为您要传递的参数类型,然后将这些参数添加到 execute() 方法中。
如果您想启动一个活动并从接收器向其发送一些数据,您应该使用 Intent 来完成。
public void getA(Context context, Object dataToPass) {
// replace DestinationActivity with the Activity that you want to start
Intent i = new Intent(context, DestinationActivity.class);
// add the data that you want to pass
i.putExtra("some-constant", dataToPass);
// start the actual activity
context.startActivity(i);
}
在这种情况下,您必须在 onReceive() 方法中更改对 getA() 的调用,以添加上下文和要传递的数据。
参考:http://developer.android.com/reference/android/os/AsyncTask.html