命令模式,为什么这不起作用

时间:2018-03-14 04:13:14

标签: java android design-patterns

我在android中实现了一个命令模式。

这就是我现在所拥有的。出于某种原因,这不会运行。这就像AddUserRequest由于某种原因而被收集垃圾。

RequestManager.java:

public class RequestManager extends BroadcastReceiver {

private static final RequestManager instance = new RequestManager();
private boolean isConnected = false;
private static ArrayList<Request> requestQueue = new ArrayList<Request>();

private RequestManager() {
}

/* singleton class */
public static RequestManager getInstance() {
    return instance;
}

public void invokeRequest(Request request) {
    request.execute(); // only to test this, this will change
    return;
}
}

AddUserRequest.java

public class AddUserRequest extends InsertionRequest {
User user;

public AddUserRequest(User user) {
     this.user = user;
}

public void execute() {
    System.out.println("TEST!!!");
}
}

Request.java:

public abstract class Request {

public abstract void execute();

}
}

InsertionRequest.java

public abstract class InsertionRequest extends Request {

}

RequestManagerTest.java

public class RequestManagerTest extends ActivityInstrumentationTestCase2 {
public RequestManagerTest(){
    super(MainActivity.class);
}

public void testAddUserRequest() {
    User user = new User();
    user.setName("Tester12345");

    AddUserRequest request = new AddUserRequest(user);
    RequestManager.getInstance().invokeRequest(request);
}
}

出于某种原因,这不会打印“TEST !!!”而对于我的生活,我无法弄清楚为什么。我查看了调试日志,每次在RequestManager.java中调用request.execute()时都会有一个“GC Explicit ...”,我怀疑它与垃圾收集有关。做我想做的事的正确方法是什么?

0 个答案:

没有答案