我有一个令我讨厌的问题.
使用Android,我有一个应用程序似乎onCreate每次创建一个活动的新实例时都会调用,因为这个活动是另一个活动的子,它在结束一个数据的角色时完成了自己.
onCreate每次调用似乎都是重新解析XML以创建视图并重新附加/重新创建对代码的侦听器等等.那么,如果我们点击移动设备中的后退按钮,是否有办法缓存每次都要调用的活动,而不会看到它?这就像让它真正隐藏(无法通过后退按钮访问)并仅在必要时销毁.
提前谢谢大家:)
我一直在寻找它,我似乎无法将自己包裹在onCreate和Bundles周围.我知道onCreate在程序启动时会被调用,但它会如何传递Bundles以及它们是如何相关的.任何人都可以试着把它变成简单的英语,因为我似乎无法找到它.
谢谢
Delphi帮助说要么覆盖表单的构造函数,要么使用OnCreate事件.但不要两者都做.这是什么原因?我唯一能看到的是,如果继承被遗留在后代的构造函数中,TCustomForm.Create将不会被调用.因此,OnCreate在这种情况下不会被调用.但如果没有遗漏继承,我不会看到问题.
编辑:我应该添加我的问题的原因.我实际上并不打算在同一个班级中使用它们.但是当一个后代已经在使用OnCreate时,我正在考虑覆盖基类中的构造函数.所以我想知道是否存在某种我不知道的冲突.但我得到的印象应该没问题.虽然我可能只是在基类中使用OnCreate来保持它的一致性.
另一个编辑:感谢大家的帮助.所以看起来使用这两种方法实际上不会破坏任何东西,如果你正确地做到了.但这样做的问题在于它使代码难以理解.而且我想我应该选择一个最佳答案,但每个人似乎都同意.所以我会选择先发布的那个.
我有一个应用程序,当我希望重新创建我的活动或onCreate需要调用该函数以便可以再次执行不同的功能时,存在某些条件.就像设备的方向改变并调用oncreate函数或重新创建活动一样,我希望我的应用程序能够重新启动.目前我正在使用,this.onCreate(null)但我认为这不是最好的方法..
请提出一些建议.
非常感谢
我想知道,为什么OnCreate()在活动开始时只调用一次?
我们可以OnCreate()在同一个活动中不止一次打电话吗?
如果是的话,我们怎么称呼呢?谁能举个例子?
非常感谢!!!
我有一个Home替换活动,您可以在其中启动许多应用程序.点击"主页"按钮后,您将返回"我的主页"替换活动.
据我所知,点击主页按钮会创建启动主屏幕的意图,然后启动该意图(我可能错了,如果我是,请纠正我!).如果是这种情况,我希望onCreate()只要创建主屏幕就会运行该方法.另一方面,当您启动另一个活动时,主屏幕将调用onPause().所以返回它会让我假设onResume()被调用.
如果有人可以在这个问题上提供一些启示,那么基本的问题是当我点击主页按钮时是否onResume()或被onCreate()调用,但是欢迎其他细节,我正在研究那些利用这个问题并且想要了解很多内容的东西. .
上次更新后,我的应用有以下问题:
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
任何人都发现了这个问题和/或有任何想法如何克服这个问题? …
@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) 我正在使用FragmentPagerAdapter和片段.我的问题是,当我调用setCurrentItem时,正在加载的片段的OnCreateView方法被调用两次.重要的是要注意,片段不会重新创建,只需恢复即可.我迫不及待地想找到一个只能调用一次OnCreateView的解决方案.
我已经看过以下问题以及更多问题,但它们都没有包含我的案例的答案:
OnCreateView多次调用/使用ActionBar和Fragments
片段onCreateView和onActivityCreated调用了两次
我发现的大多数问题与FragmentViewPagers无关,这使得它们几乎无益.
我会非常感谢任何帮助!
我使用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