2012-06-15 3 views
0

Итак, я пытаюсь сделать приложение, используя метод Singleton. Я хочу иметь класс, который хранит всю информацию о состоянии/устройствах/устройствах bluetooth моего устройства, и я хочу сделать несколько активных действий, которые могут получить доступ к этим методам.Android Singleton Method

Я знаю, что мне нужно иметь класс, расширяющий приложение, тогда я могу получить доступ ко всему, вызывая getApplication(). Я не понимаю, где я инициализирую этот объект. Из моей системы координат у меня есть все эти отдельные действия, и если я инициализирую объект в одном, мне нужно будет использовать намерения передать объект в следующую активность, что полностью победит цель использования singleton метод.

Любая помощь будет оценена, спасибо.

+0

Я не знаю, что вы имеете в виду, что Ха-ха – JuiCe

ответ

1

Если вы расширили приложение, ваш класс будет создан при запуске приложения. Его можно найти в классах деятельности, используя getApplication()

+0

Спасибо! Таким образом, он автоматически инициализируется? Поэтому, если я создаю конструктор для класса, он выполняется до запуска класса, и в основном в любое время, когда я хочу получить к нему доступ в любой операции, я просто вызываю «getApplication(). AnyMethod()?» – JuiCe

+1

У этого есть метод onCreate, который будет вызываться автоматически, где вы можете сделать свою инициализацию. Да, вы можете получить к нему доступ с помощью getApplication() – barry

+0

спасибо большое босс – JuiCe

2

Просто простирается от android.app.Application. Затем зарегистрировать его как класс приложений в AndroidManifest.xml:

<application android:name="mypackage.MyApplication" ...> 

В классе вы будете получать обычные звонки для Android, например, в

@Override 
public void onCreate() { } 

, где вы будете иметь возможность инициализировать свои глобальные экземпляры.

В деятельности принести экземпляр MyApplication понижающее приведение с:

MyApplication app = (MyApplication) getApplication(); 

Надежда, что помогает.

+0

вы правы спасибо – JuiCe

+0

Я дал тому парню ответ, потому что он ответил первым извините:/ – JuiCe

+1

Нет проблем. – mschonaker