这就是我想要理解的。
我有这样的服务
public MyService extends Service {
public List<MyListener> listenersList = new ArrayList<>();
public void addListeners(MyListeners mylistener) {
listenersList.add(myListener);
}
public void eventAOccured(){
for ( MyListner mylistener : listeners ) {
mylistener.eventAOccured();
}
}
public void eventBOccured(){
for ( MyListner mylistener : listeners ) {
mylistener.eventBOccured();
}
}
}
这是我的mylistener接口
public Interface MyListener {
public eventAOccured();
public eventBOccured();
}
现在我们有三个活动
public Activity1 extends AppCompatActivity implements MyListener{
public static int myVariable = 1;
//starts service. For sake of brevity I am skipping this part.
MyService.add(this);
//on click of a button
startActivity( new Intent (Activity1.this, Activity2.class);
//Now I know this will put Activity1 in paused state
@Override
public void eventAOccured() {
//Call activity 3
}
@Override
public void eventBOccured() {
myVariable = 3;
}
}
这是通过单击活动1中的按钮调用的第二个活动。在activity2启动之后,假设eventb发生了。现在,如果我从activity1访问myvariable,它是1还是3。
过了一段时间,让我们说,事件发生了。现在将启动Activity3吗?
我知道一个活动被暂停意味着它对用户不再可见,但是与服务的通信是否会继续?
最佳答案
是的,暂停的活动仍将接收事件,因为它位于系统的后堆栈中且未被销毁。