android: как восстановить объект onResume и сохранить его на паузу? - PullRequest
0 голосов
/ 21 июня 2011

Я хочу сохранить объект (Myclass) на паузе и загрузить его при возобновлении работы приложения.

Я попробовал все, но ничего не работает.

Я пытаюсь создать поток и запустить его в своей основной деятельности, когда возникает проблема. Когда я нажимаю кнопку «Назад» (выход из приложения) и снова нажимаю на приложение, оно создает новый поток и не возобновляет старый поток.

Ответы [ 2 ]

0 голосов
/ 25 июня 2011

По сути, вы не можете (и не должны) делать то, что пытаетесь сделать.Если у вас есть код, который вы хотите продолжить выполнять после того, как пользователь завершит сеанс *, ваш код должен работать вместе со службой.Затем код должен записывать свою работу в постоянное хранилище, или ваша служба должна предусматривать некоторый связывающий интерфейс для вновь созданного действия для соединения с потоком.

* Сеанс заканчивается, если пользователь поддерживает наши ваши действия.Это другое поведение по сравнению с тем, когда пользователь нажимает клавишу HOME, что означает, что пользователь хочет возобновить то, что он делал, когда он вернется в ваше приложение.

0 голосов
/ 21 июня 2011

Сделайте класс (MyClass) реализующим Serializable, затем вы можете сохранить его как файл, когда действие уничтожено, и восстановить его из файла, когда оно возобновится

public boolean ObjectToFile(String fileName, Object obj){
    boolean success = false;        
    FileOutputStream fos = null;
    ObjectOutputStream out = null;
    try{
        File dir = GetAppDir();
        if(dir != null){
            fos = new FileOutputStream(dir + "/" + fileName);
            out = new ObjectOutputStream(fos);
            out.writeObject(obj);
            out.close();
            success = true;
        }
    }catch(Exception e){}
    return success;
}

public Object FileToObject(String fileName){
    Object obj = null;
    try{
        File dir = GetAppDir();
        if(dir != null){
            File f = new File(dir, fileName);
            if(f.exists() && f.isFile()){       
                FileInputStream fis = null;
                ObjectInputStream in = null;
                fis = new FileInputStream(f);
                in = new ObjectInputStream(fis);
                obj = in.readObject();
                in.close();
            }
        }
    }catch(Exception e){}
    return obj;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...