实际上我已经创建了一个单例类。现在我的singleton类扩展了Activity,我在这个类上编写了onCreate()
和onStart()
方法。但它永远不会被调用。我使用的代码如下所示。如果有人知道帮助我解决这些问题。
代码
public class cycleManager
{
private static CycleManager m_cycleManagerObj;
private CycleManager()
{
// Initialise Variable
onInitialization();
readData(this); // show error when call from here
}
public static synchronized CycleManager getSingletonObject()
{
if (m_cycleManagerObj == null)
{
m_cycleManagerObj = new CycleManager();
}
return m_cycleManagerObj;
}
public Object clone() throws CloneNotSupportedException
{
throw new CloneNotSupportedException();
}
public void writeData(Context c)
{
SharedPreferences preferencesWrite = c.getSharedPreferences("myPreferences", 0);
SharedPreferences.Editor editor = preferencesWrite.edit();
// work to be done
}
public void readData(Context c)
{
SharedPreferences preferencesRead = c.getSharedPreferences("myPreferences", 0);
// work to be done
}
}
答案 0 :(得分:1)
在AndroidManifest.xml中检查您的活动。
<activity
android:configChanges="orientation|keyboardHidden"
android:name=".ActivityName">
答案 1 :(得分:1)
事情是Android以自己的方式管理活动:从调用构造函数到调用所有生命周期方法。因此,如果您将Activity的构造函数声明为私有,那么Android将无法管理此活动。
为什么你需要单身活动类?考虑different launch modes
答案 2 :(得分:0)
它们不是公共方法。它们是受保护的方法。您应该覆盖现有的method.try,如下所示。
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
答案 3 :(得分:0)
这里的关键是Android应该管理你的活动生命周期,而不是你。
onCreate和onStart(以及onPause,onDestroy和所有其他Android活动生命周期函数)由Android主线程上的looper调用。
你是如何开始这项活动的?它是否在您的舱单中宣布为您的主要活动和发射器?你调用了startActivity并传递了类名吗?
您正在创建活动的单例实例,并且其构造函数是私有的,这表明Android在您需要时无法启动此活动,尽管某些函数用于将现有活动传递给被管理可能存在,我从来没有见过它。
如果永远不会调用onCreate和onStart,则表示Android不知道应该运行您的活动。
答案 4 :(得分:0)
您收到错误,因为您的类不是Context
的子类。将Context
属性添加到getSingletonObject(Context context)方法并将其传递给CycleManager(Context context)构造函数。