2014-01-12 5 views
0

При разработке приложения я сталкивался много раз, когда мне нужно было выполнить какое-либо действие (которое требует, чтобы контекст был типа Activity) изнутри класса, который не расширяет Activity.Создание класса utillity, который расширяет активность

Например: создать событие AlarmManager, создав широковещательную или управляющую системные службы.

Это хорошая идея создать статическую активность, которая будет функционировать как класс использования для выполнения действий?

Выгода будет заключаться в том, что она будет доступна для доступа со всех классов приложений.

Otherwiswe я нахожу свой дублирующий код из одной активности в другую.

+0

Создание класса полезности всегда является хорошей идеей. Почему вы смущены? – Batty

+1

Если вашему классу утилиты нужен контекст, передайте его в конструктор. – ramaral

ответ

1

Удостоверьтесь, что для этих звонков необходим Activity, а не Context. Я считаю, что случаи, о которых вы упомянули, требуют только Context, которые легко доступны за пределами Activity. Например, Android Service происходит из контекста, как и сам объект Application.

2
public class MyApplication extends Application { 

    public static MyApplication instance = new MyApplication(); 
    private static Context context; 

    @Override 
    public Context getApplicationContext() { 
     // TODO Auto-generated method stub 
     return super.getApplicationContext(); 
    } 

    @Override 
    public void onCreate() { 
     // TODO Auto-generated method stub 
     super.onCreate(); 
     context = this; 
    } 

    public static Context getContext() { 
     return context; 
    } 

} 

Вы можете назвать это просто MyApplication.getContext();

И добавить этот тег в ваш AndroidManifest.xml инициализировать этот класс, когда приложение начать работу.

<application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:name="com.example.application.MyApplication" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
+0

Возьмите это как конструктивный критик: вы должны добавить некоторое объяснение в свой ответ. – ramaral

+0

В чем смысл переопределения getApplicationContext и ничего не делать? и какова точка статического экземпляра, который не используется? Вам также нужно показать, как ссылаться на это в AndroidManifest.xml –

+0

извините guyz, это была небольшая ошибка, чтобы вызвать MyApplication.getContext(), чтобы получить контекст в вашем приложении. –

Смежные вопросы