在我的Android应用中,
ActivityA --->调用Service.java ----->调用ActivityB。
Service.java对JSON Web服务进行web url调用,一切正常。 现在我想在ActivityA中显示加载动画,直到代码返回值并将用户带到ActivityB。
问题 1)我经历了Stack over flow,所有人都回答使用BroadCastReceiver。
在Service.java中,我这样做
public Service {
public String someMethod(){
if(intent != null){
Intent intent = new Intent("someAction");
intent.putExtra("ABC", something);
Context.sendBroadCast(intent);
//Talk to JSON web services server
}
}
}
在ActivityA.java中
public class ActivityA {
public view onCreate(){
//call Service.java
}
public static class MyBroadCastReceiver extends BroadCastReceiver(){
public onReceive(){
//
}
}
}
1)之前Service.java返回ActivityB.java,但现在返回ActivityA.java 2)当我使用sendBroadCast()时,Service.java如何发送进度状态。我没有看到任何不断发送进展的事情。 3)我怎样才能在ActivityA中加载动画工作?请帮忙。
PS:我已经发布了我记忆中的代码。一旦我回到家,我会准确地发布。感谢。
答案 0 :(得分:0)
如果我理解你的要求你可以只显示ProgressDialog或带标志的任何自定义对话框:
dialog.setCancelable(false);
一旦您在ActivityA的接收方收到服务的反馈,您想要关闭该对话框并发送新意图以打开ActivityB
public class ActivityA extends Activity{
private ProgressDialog progressDialog = null;
public view onCreate(){
//call Service.java
progressDialog = new ProgressDialog(this);
progressDialog.setCancelable(false);
progressDialog.setIndeterminate(true);
progressDialog.show();
}
public static class MyBroadCastReceiver extends BroadCastReceiver(){
public onReceive(){
progressDialog.dismiss();
// open ActivityB , append params
}
}
}
如果您需要显示大约进度li 25/50/75/100%,那么您需要从服务中传递一些整数,该整数将在ActivityA的接收器中用于设置ProgressDialog的进度。一旦达到100,您将再次需要关闭对话框。