在我的清单中,我有这个:
<activity
android:name=".BackgroundOptionSlider"
android:label="@string/update_background" >
</activity>
但是我的班级BackgroundOptionsSlider
需要为我正在做的事情设置一个私有的默认构造函数(确保只有一个实例),因此我的清单中出现错误&#39;声明我需要一个公共默认构造函数。我怎么能超越这个?
答案 0 :(得分:3)
由于BackgroundOptionSlider
扩展了Activity
,因此您无法避免使用默认的公共构造函数。
确保只有一个实例
系统已经为您提供了实现此目的的方法,声明
<activity
android:name=".BackgroundOptionSlider"
android:label="@string/update_background"
android:launchMode="singleTask">
</activity>
OR
<activity
android:name=".BackgroundOptionSlider"
android:label="@string/update_background"
android:launchMode="singleInstance">
</activity>
More information关于启动模式,还请参阅this question。
答案 1 :(得分:1)
你永远不应该尝试自己实例化Activity,android框架会为你做这个,所以你应该提供一个默认的公共构造函数。如果你想只有一个活动的单个实例,你可以通过指定启动模式来实现singleInstance,here这里是关于launchModes的好读物