相关疑难解决方法(0)

Android:在什么情况下会出现Dialog导致onPause()被调用?

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)

lifecycle android dialog android-lifecycle onpause

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

是否保证调用Activity.onStop()(API 11 +)

从文档中(至少对我来说)不清楚是否保证调用Activity.onStop.有两个地方看似矛盾的信息.

  1. Activity.onStop的Javadoc:

请注意,在内存不足的情况下,可能永远不会调用此方法,在这种情况下,系统没有足够的内存来保持活动进程在调用onPause()方法后运行.

  1. 活动类http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle的文档(特别是"Killable"列):

从Honeycomb开始,应用程序在其onStop()返回之前不处于killable状态.这可能会在调用onSaveInstanceState(Bundle)时产生影响(可以在onPause()之后安全地调用它,并允许和应用程序安全地等到onStop()以保存持久状态.

找到两种文件都说实话的方式有点困难.我能想到的唯一场景是:假设您正在使用目标API 21(使用min sdk 10)进行开发,并使用onStop()方法编写Activity.如果您随后在API 10手机上运行此应用程序,则无法保证调用onStop().这种情况意味着上述第1点和第2点的文档都是正确的.否则,其中一个必须是假的.

activity-lifecycle android-activity

14
推荐指数
2
解决办法
2023
查看次数