Android 未调用onCreate
我有两个活动:第一个活动用户点击一个按钮,启动第二个活动。第二项活动完成所有工作 我启动了第二个活动,如下所示,它位于onClickListener内部类中,我尝试使用(FirstActivity.this,Simple.Class)显式调用它,但同样的情况也发生了Android 未调用onCreate,android,android-activity,Android,Android Activity,我有两个活动:第一个活动用户点击一个按钮,启动第二个活动。第二项活动完成所有工作 我启动了第二个活动,如下所示,它位于onClickListener内部类中,我尝试使用(FirstActivity.this,Simple.Class)显式调用它,但同样的情况也发生了 Intent test = new Intent(arg0.getContext(),Simple.class); startActivity(test); 在模拟器上,我看到屏幕移动,就像调用第二个活动一样,但我
Intent test = new Intent(arg0.getContext(),Simple.class);
startActivity(test);
在模拟器上,我看到屏幕移动,就像调用第二个活动一样,但我得到的只是一个黑屏,但没有从我的布局加载任何内容。我查看了logcat,确实看到一些绑定线程失败的消息。这是我的第二个活动中的onCreate函数,但我没有从屏幕或logcat中得到任何结果,显示调用了日志函数:
public void onCreate(Bundle savedState)
{
Log.d("SimpleActivity","OnCreate Started");
super.onCreate(savedState);
setContentView(R.layout.simple);
Log.d("SimpleActivity","OnCreate Ended");
}
注意:我在上面的代码中使用super.OnCreate(savedState)调用了OnCreate()中的基构造函数。您应该@Override OnCreate并在其中添加
super.OnCreate()
@Override
public void onCreate(Bundle savedState)
{
super.onCreate(savedState);
Log.d("SimpleActivity","OnCreate Started");
setContentView(R.layout.simple);
Log.d("SimpleActivity","OnCreate Ended");
}
您需要调用
super.onCreate(savedState)
方法。看一看
如果活动从未被销毁,onCreate可能不会被调用, 如果由于某种原因某个活动挂起,下次实例化它时不会重新创建它,而是继续 至少这就是我现在在代码中要处理的。。。活动的生命周期似乎是一个很好的逻辑解释。。然而,99%的时间我都依赖于onCreate在启动Activity时被调用,它不会让我失望
编辑:当然,这是因为我在退出活动时没有调用finish()。Doh.这与此特定问题无关,但在清单文件中未声明活动时也可能发生这种情况)发生在我身上的是我重写了错误的
onCreate
方法。当我真的需要重写受保护的void onCreate(@Nullable Bundle savedInstanceState)时,我正在重写公共void onCreate(Bundle savedInstanceState,PersistableBundle persistentState)。也许这可以帮助别人 如果您的方法属于AppCompatActivity或Activity,请小心
这取决于您对您的类实现了什么
如果要添加生命周期或任何重写方法,建议您按
CTRL+O
或docode>Override方法
,您可以在那里看到该方法所属的位置
从清单中删除android:launchMode=“singleTask”我的案例 (1) mainActivity->(2)打开适配器-startActivity->(3)未触发mainActivity onCreate() 我通过添加finish()解决了这个问题。在主要活动中 按照以下步骤检查您的应用程序。 1.您是否覆盖了正确的方法?如果不重写下面的方法,则在启动Tactivity时将触发此方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
2.确保已在manifest.xml中注册该活动
2.1您的活动是否有android:launchMode=“singleInstance”?
(如果您的应用程序不需要单独实例,请考虑删除。
但我的案例需要singleinstance,因此我进入下一步)
它会破坏A屏幕,因此当您通过单击B方法(“StartActivity”)返回到屏幕时,它会创建一个屏幕并触发onCreate()方法。再发布一些代码,以便我们可以看到arg0是什么。你可能不应该用那些东西。使用YourActivity.this作为传递到新意图的上下文。您解决了这个问题吗?视图中是否有直接实例化的片段?这个答案为我提供了解决问题的线索。在我的例子中,活动是在对象标志的条件下完成的,这被放在处理程序的可运行代码中。但该对象在执行runnable之前变为null。谢谢你。这就是我的情况,直接转到onPause,一旦创建没有被呼叫。谢谢,真的是这样!这只愚蠢的虫子花了我至少一个小时才找到。。。该死的,
public void onCreate
!oncreate(&输入land me here lol..auto complete应该会让工作更轻松,不是吗?感谢谷歌将“void oncreate(Bundle savedInstanceState,persistable Bundle persistentState)”作为代码完成的默认方法。grrrrrrrrr感谢谷歌让我们能够专注于应用程序开发:D
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
public void openSearch(View view) {
Intent intent = new Intent(this, BookInfoActivity.class);
intent.putExtra(...);
startActivity(intent);
finish(); // add like this.}