2015-04-30 2 views
2

В моем манифесте я это:Как пройти манифест Android без публичного конструктора?

<activity 
    android:name=".BackgroundOptionSlider" 
    android:label="@string/update_background" > 
</activity> 

но мой класс, BackgroundOptionsSlider, нужно иметь частный конструктор по умолчанию для того, что я делаю (убедившись, что есть только один экземпляр когда-либо), и по этой причине я являюсь получив ошибку в моем манифесте, заявив, что мне нужно иметь общедоступный конструктор по умолчанию. Как я могу пройти мимо этого?

ответ

3

Поскольку ваш BackgroundOptionSlider расширяет Activity, вы не можете избежать создания общедоступного конструктора по умолчанию.

убедившись, что есть только один экземпляр когда-либо

Путь для достижения этой цели уже дано вам систему, объявить

<activity 
     android:name=".BackgroundOptionSlider" 
     android:label="@string/update_background" 
     android:launchMode="singleTask"> 
    </activity> 

ИЛИ

<activity 
     android:name=".BackgroundOptionSlider" 
     android:label="@string/update_background" 
     android:launchMode="singleInstance"> 
    </activity> 

More information о режиме запуска, а также см. this question.

+0

спасибо! Я не знал, что ты можешь это сделать! –

1

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