startActivity(intent)
请告诉我使用和setContentView(R.Layout.main)
哪个更可取以及应该在哪些条件下使用之间的区别?
我认为当我们喜欢执行我们使用的任何操作startActivity(intent)
并且只是在我们使用的不同页面中移动时setContentView(R.Layout.main)
3 回答
如果你使用startActivity,在新Activity的onCreate中,你还要设置contentView()。因此,就时间而言,单独的 setContentView 更快,因为它不会启动新的活动。因此,您的应用程序将更快地显示新屏幕...
另一方面,如果你调用 startActivity,这个活动会被放入堆栈,所以你可以通过按下返回按钮返回。通过使用 setContentView,您必须手动配置后退按钮以返回到以前的布局...
根据应用程序的类型,您必须确定最适合您的应用程序。例如,对于 chrome-to-phone 源代码,显示 google 在应用程序的完整设置阶段使用 setContentView。它更快,他们在屏幕底部放置了返回按钮以返回。按下物理后退按钮将停止 Activity。使用这种方法,他们为多个屏幕使用一个活动来收集完成设置所需的所有信息。
设置完成后,Google 会切换到 startActivity 方法,以执行不同的操作。在这里,应用程序为用户可以执行的不同任务使用不同的活动。每个活动都是一种独立的活动,后退按钮允许在它们之间快速切换。
希望这会为您指明正确的方向
startActivity(intent) 顾名思义开始新的活动。现在该活动用于setContentView(xml);
将 xml 布局设置为该活动。现在的问题是第一个活动如何开始,因为我们没有为第一个活动调用 startActivity(intent)。
答案在您的清单文件中。首先调用清单中的 Launcher 活动,并将布局视图设置为相应的 java 文件中指定的内容setContentView(R.layout.main);
它们非常不同,但根据您的问题,我假设您正试图用它们完成相同的事情,这似乎是可能的。但是,您应该考虑的是setContentView(R.Layout.main
),如果您来回移动,将取消注册在该 contentView 中设置的先前侦听器,startActivity(intent)
如果您的侦听器处于活动状态并且想要某种交互体验,则更可取。还有其他更好的方法取决于您要做什么。