标签: oncreate

如何使用Android缓存视图,避免每次都调用onCreate

我有一个令我讨厌的问题.

使用Android,我有一个应用程序似乎onCreate每次创建一个活动的新实例时都会调用,因为这个活动是另一个活动的子,它在结束一个数据的角色时完成了自己.

onCreate每次调用似乎都是重新解析XML以创建视图并重新附加/重新创建对代码的侦听器等等.那么,如果我们点击移动设备中的后退按钮,是否有办法缓存每次都要调用的活动,而不会看到它?这就像让它真正隐藏(无法通过后退按钮访问)并仅在必要时销毁.

提前谢谢大家:)

android oncreate

6
推荐指数
2
解决办法
8467
查看次数

你能解释一下关于创造和捆绑吗?

我一直在寻找它,我似乎无法将自己包裹在onCreate和Bundles周围.我知道onCreate在程序启动时会被调用,但它会如何传递Bundles以及它们是如何相关的.任何人都可以试着把它变成简单的英语,因为我似乎无法找到它.

谢谢

android bundle oncreate

6
推荐指数
1
解决办法
9220
查看次数

是否存在覆盖Delphi表单构造函数的问题,_and_使用它的OnCreate事件?

Delphi帮助说要么覆盖表单的构造函数,要么使用OnCreate事件.但不要两者都做.这是什么原因?我唯一能看到的是,如果继承被遗留在后代的构造函数中,TCustomForm.Create将不会被调用.因此,OnCreate在这种情况下不会被调用.但如果没有遗漏继承,我不会看到问题.

编辑:我应该添加我的问题的原因.我实际上并不打算在同一个班级中使用它们.但是当一个后代已经在使用OnCreate时,我正在考虑覆盖基类中的构造函数.所以我想知道是否存在某种我不知道的冲突.但我得到的印象应该没问题.虽然我可能只是在基类中使用OnCreate来保持它的一致性.

另一个编辑:感谢大家的帮助.所以看起来使用这两种方法实际上不会破坏任何东西,如果你正确地做到了.但这样做的问题在于它使代码难以理解.而且我想我应该选择一个最佳答案,但每个人似乎都同意.所以我会选择先发布的那个.

delphi constructor oncreate

6
推荐指数
1
解决办法
1133
查看次数

如何重启onCreate函数

我有一个应用程序,当我希望重新创建我的活动或onCreate需要调用该函数以便可以再次执行不同的功能时,存在某些条件.就像设备的方向改变并调用oncreate函数或重新创建活动一样,我希望我的应用程序能够重新启动.目前我正在使用,this.onCreate(null)但我认为这不是最好的方法..
请提出一些建议.
非常感谢

android restart oncreate android-activity

6
推荐指数
1
解决办法
2万
查看次数

为什么OnCreate只应在Activity的开头调用一次?

我想知道,为什么OnCreate()在活动开始时只调用一次?

我们可以OnCreate()在同一个活动中不止一次打电话吗?

如果是的话,我们怎么称呼呢?谁能举个例子?

非常感谢!!!

android oncreate android-lifecycle android-activity

6
推荐指数
1
解决办法
5330
查看次数

按Home键时运行哪种方法?

我有一个Home替换活动,您可以在其中启动许多应用程序.点击"主页"按钮后,您将返回"我的主页"替换活动.

据我所知,点击主页按钮会创建启动主屏幕的意图,然后启动该意图(我可能错了,如果我是,请纠正我!).如果是这种情况,我希望onCreate()只要创建主屏幕就会运行该方法.另一方面,当您启动另一个活动时,主屏幕将调用onPause().所以返回它会让我假设onResume()被调用.

如果有人可以在这个问题上提供一些启示,那么基本的问题是当我点击主页按钮时是否onResume()或被onCreate()调用,但是欢迎其他细节,我正在研究那些利用这个问题并且想要了解很多内容的东西. .

android onresume oncreate android-homebutton

6
推荐指数
2
解决办法
1万
查看次数

AndroidRuntimeException:在添加Honeycomb 3.1 - 3.2.1独有的内容之前,必须调用requestFeature()

上次更新后,我的应用有以下问题:

java.lang.RuntimeException: Unable to start activity ComponentInfo{my.package/my.package.MyMainActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1818)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
at android.app.ActivityThread.access$500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:214)
at android.support.v7.app.ActionBarActivityDelegateHC.onCreate(ActionBarActivityDelegateHC.java:38)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at my.package.MyBaseActivity.onCreate(MyBaseActivity.java:68)
at my.package.MyApiServiceActivity.onCreate(MyApiServiceActivity.java:51)
at my.package.MyActivity.onCreate(MyActivity.java:88)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
... 11 more
Run Code Online (Sandbox Code Playgroud)

但是,我从不打电话requestWindowFeature或类似.也没有涉及对话.该报告本身来自BugSense,我自己从未遇到过这个问题.这是一个相当受欢迎的应用程序,该问题是Android Honeycomb 独有的:3.2,3.2.1和3.1.它在以前版本的应用程序中没有发生.自更新以来功能的唯一变化是我切换到的事实.onCreateActionBarSherlockActionBarCompat

任何人都发现了这个问题和/或有任何想法如何克服这个问题? …

android exception oncreate android-actionbar-compat

6
推荐指数
1
解决办法
2544
查看次数

无法实例化由以下原因引起的活动:java.lang.InstantiationException

@Bini这个错误,当我做出你的改变:(

09-26 11:06:05.620: D/dalvikvm(1613): Late-enabling CheckJNI
09-26 11:06:06.148: D/dalvikvm(1613): GC_FOR_ALLOC freed 51K, 4% free 3410K/3532K, paused 22ms, total 22ms
09-26 11:06:06.236: I/dalvikvm-heap(1613): Grow heap (frag case) to 17.093MB for 14369304-byte allocation
09-26 11:06:06.240: D/dalvikvm(1613): GC_FOR_ALLOC freed 2K, 1% free 17440K/17568K, paused 3ms, total 3ms
09-26 11:06:06.608: D/AndroidRuntime(1613): Shutting down VM
09-26 11:06:06.608: W/dalvikvm(1613): threadid=1: thread exiting with uncaught exception (group=0xa4d51b20)
09-26 11:06:06.608: E/AndroidRuntime(1613): FATAL EXCEPTION: main
09-26 11:06:06.608: E/AndroidRuntime(1613): Process: com.VaSuRa.sugboways, PID: 1613
09-26 11:06:06.608: E/AndroidRuntime(1613): java.lang.RuntimeException: Unable to start …
Run Code Online (Sandbox Code Playgroud)

android oncreate

6
推荐指数
1
解决办法
6821
查看次数

Android片段OnCreateView调用了两次

我正在使用FragmentPagerAdapter和片段.我的问题是,当我调用setCurrentItem时,正在加载的片段的OnCreateView方法被调用两次.重要的是要注意,片段不会重新创建,只需恢复即可.我迫不及待地想找到一个只能调用一次OnCreateView的解决方案.

我已经看过以下问题以及更多问题,但它们都没有包含我的案例的答案:

Android oncreateview调用了两次

OnCreateView多次调用/使用ActionBar和Fragments

片段onCreateView和onActivityCreated调用了两次

我发现的大多数问题与FragmentViewPagers无关,这使得它们几乎无益.

我会非常感谢任何帮助!

android oncreate android-fragments android-viewpager

6
推荐指数
1
解决办法
5074
查看次数

ViewPager中的片段返回空对象onResume

我使用FragmentPagerAdapter从片段切换.我需要在制作片段开关时调用一些函数,并且在OnPause和OnResume上遇到一些麻烦,所以这个问题的建议我实现了一个接口OnPageSelectListener:

public interface OnPageSelectListener {
    void onPageSelected();
    void onPageNotVisible();
}
Run Code Online (Sandbox Code Playgroud)

只要此页面到达前台,它就会调用OnPageSelected函数.工作得很好,除了我想在我的适配器上调用一个函数.我认为这样可行,除了我的适配器一直返回NULL(即使它被初始化并且数据在我的列表视图中被加载为首选).

    public class AfterCheckFragment extends Fragment implements OnPageSelectListener{


        private   ListView listView;
        private List<Check> checkList;
        private CheckListAdapter adapter;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view =  inflater.inflate(R.layout.fragment_check, container, false);

        System.out.println("VIEW create  called");

//(.. some other stuff, not relevant for question..)

        //initializing the adapter
          listView = (ListView) view.findViewById(R.id.listView);
        adapter = new CheckListAdapter(checkList,getActivity(),trainPosition);

        listView.setAdapter(adapter);
        adapter.handleButtonVisibility();
        return view;

    }
@Override …
Run Code Online (Sandbox Code Playgroud)

android oncreate android-fragments android-viewpager fragmentpageradapter

6
推荐指数
1
解决办法
1839
查看次数