我有三项活动 - 活动A,活动B,活动C.活动A是启动器活动。从这个活动,我去活动B.
活动B和活动C的定义如下:
public class B extends C
public abstract class C extends BaseActivity
现在,我希望在完成活动C中的某个任务后在活动B中执行某些操作。我在google和stackoverflow中搜索过。 This leads me to this answer.
但是按照上面的回答,函数stateChanged()的调用需要花费很多时间。有没有更快的方法来做到这一点?
答案 0 :(得分:1)
每个var getRating = [];
$('.review-value').each(function () {
getRating.push($(this).data("rating"));
});
alert(getRating);
活动都是<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="review-value" data-rating="5"></div>
<div class="review-value" data-rating="7"></div>
个活动。因此,如果您在B
中定义一个继承的方法,即该方法是 public 或 protected 或 package-private ,其中B为相同的包然后重写方法如下:
C
如果您正在更好地执行某些异步任务,请在B类中定义异步任务。
另一种方法是在类C
中定义@Override
protected void method (){
super.method ();
myTaskAfterSuperMethodReturns ();
}
作为obstract方法,并在doSomething
中实现它。任务完成后,请致电C
。将B
抽象化会迫使doSomething
实施它。
答案 1 :(得分:0)
当在活动C中完成任务时,您可以使用EventBus库来激活活动B中的事件
答案 2 :(得分:-1)
您还可以从另一个Activity访问MainActivity的方法,如下所示:
MainActivity.class
private static MainActivity mInstance;
public static MainActivity getInstance(){
return mInstance;
}
在Oncreate方法中初始化实例
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mInstance = this;
}
创建在下一个活动中使用的方法
@Override
public void showData(){
//do something here
}
要访问它,只需从其他活动调用
(MainActivity.getInstance()).showData()