这就是我想要理解的。
我有这样的服务

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吗?
我知道一个活动被暂停意味着它对用户不再可见,但是与服务的通信是否会继续?

最佳答案

是的,暂停的活动仍将接收事件,因为它位于系统的后堆栈中且未被销毁。

07-28 02:49
查看更多