Я разрабатываю приложение для Android. У меня есть некоторые действия в нем. И у меня должен быть объект, который может быть доступен из всех видов деятельности. Любые идеи, как его организовать?Глобальный объект приложения android
ответ
Используйте глобальный Application
объект следующим образом:
package com.yourpackagename;
public class App extends Application {
}
В AndroidManifest.xml
:
<application android:name=".App">
Чтобы получить доступ к нему из Activity
:
App globalApp = (App) getApplicationContext();
App
класс будет автоматически запускается при запуске приложения. Он будет доступен до тех пор, пока процесс подачи заявки будет активным. Он может выступать в качестве глобального магазина, в котором вы можете разместить свои вещи и иметь доступ к ним на протяжении всей жизни приложения.
Я чувствую, что в этом есть некоторые опечатки, но я не знаю, какие из них исправить!:) –
исправлены опечатки. не стесняйтесь комментировать, если я ничего не пропускаю. –
Ваше начальное определение класса - 'GolbalObject', но ваше использование -' GlobalObject' .. –
Существует несколько способов сделать это. Если объект, который вы хотите использовать, является строкой (или легко описывается с помощью String), я бы порекомендовал Shared Preferences. Он служит хранилищем ключей для обмена данными в приложении.
Если это не так (т. Е. Пригодность String), вы можете рассмотреть возможность передачи его в качестве дополнительного с помощью Intent, который запускает ваши различные действия. Например:
Intent newActivity = new Intent(CurrentActivity.class, ActivityToLaunch.class);
newActivity.putExtra("object_key", Bundle_With_Your_Object);
Для получения более подробной информации по этой стратегии (особенно о классе Bundle, если вы не знакомы), я читал this Android doc.
Вы можете использовать SharedPreferences в этом случае:
Для добавления или редактирования:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
prefs.edit().putString("your_key", value).commit();
Для очистки:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
prefs.edit().clear();
Чтобы получить значение:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
String value = prefs.getString("your_key", "");
это предполагает, что объект, который хочет разместить плакат, представляет собой строку, которая может быть или не быть хорошим предположением; хотя, возможно, «лучшим» решением является наличие toString и конструктора, для которого Object x = new Object (y.toString()); даст x, что эквивалентно y? – mfrankli
Думаю, ему нужны некоторые атрибуты объекта вместо реального объекта. Передача объекта над намерением - еще один хороший способ, но код для его отправки и обработки является сложным. – PhatHV
Сначала создайте класс с именем MasterActivity, который расширяет Activity и определяет ваш глобальный объект.
public class MasterActivity extends Activity
{
public Object mObject;
}
Затем вы должны расширить свой основной класс активности с MasterActivity, как это:
// your main activity
public class MainActivity extends MasterActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// you can now use mObject in your main class
mObject.yourmethod();
}
}
К таким образом, вы будете иметь возможность использовать свой объект во всех ваших действиях просто путем расширения MasterActivity вместо Activity.
- 1. глобальный «объект класса» или глобальный «серверный объект»
- 2. Глобальный объект приложения, созданный дважды андроидом
- 3. Глобальный объект в Grails
- 4. Глобальный объект конфигурации
- 5. Android: используйте глобальный объект вместо создания новых
- 6. Глобальный объект JavaScript и глобальный масштаб
- 7. Rails - как сделать глобальный объект
- 8. ReferenceError и глобальный объект
- 9. массив и глобальный объект
- 10. Жасмин - Доступный глобальный объект
- 11. сделать объект глобальный AngularJS
- 12. Глобальный объект в Pyro
- 13. Инициировать объект как глобальный
- 14. статический глобальный объект
- 15. C++ глобальный объект
- 16. Node.js: app.locals глобальный объект?
- 17. Саморегистрационный глобальный объект
- 18. GlassFish JDO и глобальный объект
- 19. Объект приложения Android
- 20. Глобальный параметр веб-приложения
- 21. Phonegap игнорирует пустой глобальный объект
- 22. Android уничтожает глобальный HashMap
- 23. Локальный новый объект или глобальный статический объект
- 24. Создать новый глобальный объект jQuery
- 25. Не удается создать глобальный объект
- 26. Spidermonkey: Как удалить глобальный объект
- 27. модифицирующие 'глобальный' объект в Node.js
- 28. Как объявить глобальный объект списка
- 29. Как создать глобальный объект карты?
- 30. onfinish на глобальный Soundmanager объект
Что вы подразумеваете под "глобальным объектом"? Если вы имеете в виду класс, доступный по всему приложению, то посмотрите на эту тему http://androidforums.com/developer-101/124278-global-objects.html – evilone
В моей ситуации это должен быть объект некоторого класса. Во всех действиях я должен использовать методы этого объекта, добавлять данные в поля объекта и т. Д. – mmmaaak