Android 活动文档中的一个片段(向下滚动到" 前景生命周期 "行)说:
活动可以频繁地进出前台 - 例如,
onPause()当设备进入睡眠状态或出现对话框时调用.
我不太明白这一点.在什么情况下会发生这种情况?被onPause()称为仅如果有问题的对话的上下文是从顶部其活性的对话框将显示不同?
通过文档中的上述引用,onPause()当下面代码中的AlertDialog(或只是Dialog)显示时,我的activity的方法是否会被调用?显示对话框时,我应该看到"onPause called"日志条目吗?
但我不认为会发生这种情况.它也不应该,如果我已正确理解Android生命周期!那么,文件指向的是什么呢?
public class LifeCycleTestActivity extends Activity {
private static final String TAG = "LifeCycleTest";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "onClick");
AlertDialog dialog = new AlertDialog.Builder(LifeCycleTestActivity.this).create();
dialog.setMessage("You Clicked on the …Run Code Online (Sandbox Code Playgroud) 我们都知道Android Activity的生命周期和Fragment的生命周期.但是有没有相同的观点?
例如,这可以帮助构建自定义视图或深入了解Android上非常常见且经常隐藏的图形操作.
提前致谢 !
我知道片段的视图层次结构必须在onCreateView中膨胀,但onCreateView还有什么其他功能可以等待onActivityCreated?我当前的实现对所有内容使用单独的活动,典型的活动在其onCreate方法中完成大部分工作,包括膨胀视图,设置内容视图,使用数据初始化各种小部件,设置监听器等.
那么这可能会全部转移到onCreateView上,还是应该将某些函数放入onActivityCreated方法呢?
lifecycle android android-lifecycle android-fragments android-activity
我正在处理的Android应用程序覆盖了Application类,以在静态变量中存储轻量级状态(用户名,gps位置等).此状态的大部分是在启动活动的OnCreate中设置的(从prefs检索的用户名,位置监听器运行).依赖启动活动来初始化Application类是否安全?是否有任何情况下可能会重新创建Application类而不会创建Launch活动?
问题出现了,因为我遇到了一个空指针异常,在手机处于睡眠状态几个小时之后恢复应用程序时访问应用程序类中的变量(应用程序在手机进入睡眠状态之前留在前台).是否可能在手机处于睡眠状态时杀死该进程,并且在唤醒手机时,重新创建了Application类,堆栈中的顶级活动已恢复,但启动的activity.onCreate未运行,因此Application类没有初始化?
请注意,我试图通过强制应用程序停止使用设置/管理应用程序来测试这些类型的方案.但是,我无法重现问题.在下一次运行时,将创建Application类,然后启动activity.onCreate.
假设Application类实例与进程一样存在,并且在创建Application类时,它等同于"重新启动"应用程序即可.从一个新的活动堆栈开始(堆栈上的第一个活动是启动活动)?
我是React.js的新手,我正在努力理解反应生命周期方法中的几种方法.
到目前为止,我仍然有一些让我困惑的事情:
1)
据我了解,之间的差别componentWillUpdate,并componentWillReceiveProps
是,componentWillReceiveProps当父母改变的道具,我们可以使用的setState(这里面孩子的setState会叫componentWillReceiveProps).
例如:https: //github.com/bgerm/react-table-sorter-demo/blob/master/jsx/app.jsx
var App = React.createClass({
getInitialState: function() {
return {source: {limit: "200", source: "source1"}};
},
handleSourceChange: function(source) {
this.setState({source: source});
},
render: function() {
return (
<div>
<DataSourceSelectors onSourceChange={this.handleSourceChange} source={this.state.source} />
<TableSorter dataSource={urlForDataSource(this.state.source)} config={CONFIG} headerRepeat="5" />
</div>
);
}
});
Run Code Online (Sandbox Code Playgroud)
在TableSorter中,我们有
componentWillReceiveProps: function(nextProps) {
// Load new data when the dataSource property changes.
if (nextProps.dataSource != this.props.dataSource) {
this.loadData(nextProps.dataSource);
}
}
Run Code Online (Sandbox Code Playgroud)
意思是当我们改变时this.state.source,我们期望componentWillReceiveProps …
我知道当屏幕方向改变时,调用当前活动onDestroy(),然后调用onCreate()以有效地重新创建活动.我需要知道如何以编程方式判断应用程序是否已退出,或者是否只是更改了方向.
一种方法是让前一个活动在调用其onResume()方法时通知我,这将让我知道用户按下了后退按钮并且方向没有被更改.
PS我正在寻找一种比听取后面硬件按钮点击更优雅的解决方案.
这是我想要做的:
我有两个选项卡,当第一次输入活动或用户离开活动并且现在正在输入活动时,会根据某些标准显示某个选项卡.
当方向改变时,我需要保持在同一个选项卡上.
有没有办法知道我的应用程序的状态,如果它处于后台模式或前台.谢谢
将库更新lifecycle到 2.4.0 后,Android studio 将所有生命周期事件标记为已弃用。
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun create() {
tts = TextToSpeech(context, this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun stopTTS() {
tts?.stop()
}
Run Code Online (Sandbox Code Playgroud)
有没有等效的替代品,例如DefaultLifecycleObserver?
我有多种形式,我有必填字段和可选字段.
要提交这样的表单,我需要对要执行的required属性进行验证,这样可以正常工作.要取消这样的形式我使用属性immediate="true"上p:commandbutton,这使得在其作用发生应用请求值 -PHASE如下处理:点击一个特定的按钮时如何跳过验证?
但是,对于大型表单,我想为用户提供一个Save-Button,以便他可以稍后继续.
为了保存当前状态,我还想忽略required-attribute的验证.但是,使用immediate="true"不起作用,因为那时我的save方法简单保存,因为JSF生命周期永远不会命中"UpdateModelValues"-Phase.(根据http://www.javacodegeeks.com/2012/01/jsf-and-immediate-attribute-command.html)
那么,如何绕过所需的检查但不跳过生命周期的一半?
在Angular2中是否有像window.onbeforeunload这样的生命周期钩子?我已经google搜索并在stackoverflow上搜索,但一无所获