VS 2017: ссылка на сборку обязательна

Для чего-то подобного я использовал псевдоселетон-объект в качестве класса Application . Этот объект будет создан в начале и будет находиться в памяти. Но учтите, что система прекратит приложение, если память понадобится другим приложениям. Однако этот объект является постоянным, даже если все действия временно завершены.

Чтобы использовать это, вам нужно объявить, что в вашем манифесте android как здесь:

Вот пример кода :

public abstract class MySingeltonClass extends Application {
    // ...

    public void informClientOnline() {
        clientOnline=true;
        Log.v(LOG_TAG, "Client is online!");
    }

    public void informClientShutdown() {
        clientOnline=false;
        Log.v(LOG_TAG, "Client is going offline. Waiting for restart...");
        Timer t=new Timer("shutdowntimer", false);
        t.schedule(new TimerTask() {
            @Override
            public void run() {
                if(!clientOnline) {
                    Log.v(LOG_TAG, "Client has not restartet! Shutting down framework.");
                    shutdown();
                    System.exit(0);
                }
            }
        }, 5000);
    }
}

эти две функции вызываются так:

((MySingeltonClass)getApplicationContext()).informClientOnline();

0
задан Alex 17 January 2019 в 11:54
поделиться