2016-05-26 2 views
1

Я новичок в volley.I имеет два класса: класс SingleControl и класс ImageController Singleton. Но в Manifest он позволяет использовать только одно имя приложения. Так как я могу это решить?Несколько приложений в Android Manifest

+1

Вы можете см. здесь [введите ссылку здесь] (http: // stac koverflow.com/questions/32677954/multiple-application-androidname-in-android-manifest) –

+0

Рон, я видел это, но не понял. Спасибо – notTdar

+1

marge два класса в одном классе не нужно создавать два разных приложения –

ответ

0

Я предполагаю, что вы используете Singleton, чтобы иметь класс, который содержит данные приложения для текущего сеанса и \ или другой для конкретного материала (например, сети), если да, то у вас есть несколько способов идти о том, что:

  1. Используйте класс ONE Application - вы не должны иметь более чем один, если так - объединить их.

  2. Если вы настаиваете на том, чтобы иметь 2 класса Singleton, потому что вы хотите отделить некоторые функции, вы можете создать 2 класса Singleton, которые НЕ являются вашим классом приложения.

Если вы выбрали вариант 2, вы должны инициализировать (и, возможно, также контролировать) их из класса приложения, особенно, чтобы избежать дублирования объект контекста (что может привести к утечке памяти), но убедитесь, что это на самом деле необходимо сначала.

, так как вы отметили свой вопрос тегом Volley, я предполагаю, что this SO thread about isolating Volley requests может помочь.

Надеюсь, что-нибудь здесь помогло!

+0

будет работать! если я расширяю, например: AppController extends Приложение расширяет ImageController? – notTdar

+0

это могло бы быть, но я был бы осторожен в том, чтобы позволить моему приложению распространять другие материалы, классы приложений - это мягкие пятна для утечек памяти, убедитесь, что у вас нет избыточных вещей там, и если то, что вам нужно в ImageController, является контекстом приложения, Я бы отделил его, взгляните на ссылку, которую я добавил, это может сделать все более ясным, пример для общения с Volley, но шаблон будет работать и на другие вещи. – TommySM

2

только <manifest> и <application> элементы необходимы, каждый из них должен присутствовать и может произойти только один раз

Согласно documentation файл манифеста с только один элемент приложения является действительным.

Попробуйте Мардж в один класс Application

1

Прежде всего, каждое приложение должно иметь только один класс приложения, который является концепцией MVC в android. Вы должны удалить один класс приложения и сделать то, что он делает в другом. Согласно вашему требованию: у вас есть класс приложения AppController и ImageController, затем удалите весь код приложения ImageController и объедините его в класс приложения AppController. Теперь используйте класс AppController в манифесте.

+0

Спасибо rahut .... взял меня, чтобы понять, что .. – notTdar

+0

@ Cyborg91 Можете ли вы поместить свой код? Поэтому я знаю, как ваша структура кода. – Rahul

0

Вы можете попробовать этот способ:

Класс Application не один:

public class MyApplication extends Application { 
} 

класс Применение № два:

public class MyApplication2 extends MyApplication { 
} 

В манифесте:

<application 
    android:name=".MyApplication2" 
    android:allowBackup="false" 
    android:icon="@drawable/app_icon" 
    android:label="@string/app_name" 
    android:supportsRtl="true"/>