小编Sha*_*ani的帖子

按下后退按钮时会调用onDestroy()

在我的Activity中,我已经覆盖onDestory()并只是调用日志来显示是否正在调用此方法.(在Android 4.2.2和4.4.4上测试过)

@Override
protected void onDestroy() {
    Log.i(TAG, "onDestroy() was called");
    super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

当我按下后退按钮时,会调用此方法(我看到了日志).

我相信除非手机内存不足或其他东西,否则不会发生这种情况.我在应用程序中没有太多东西,但MainActivity和一些片段.

当用户在MainActivity中并按下后退按钮时,这是日志:

I/MainActivity? onBackPressed() was called
I/MainActivity? onStop() was called
I/MainActivity? onDestroy() was called
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

我也查isFinishing()onPause(),它总是返回true

来自Javadoc:

在销毁活动之前执行任何最终清理.这可能是因为活动正在完成(有人称之为完成,或者因为系统暂时销毁此活动实例以节省空间.您可以使用isFinishing方法区分这两种情况.注意:不要指望这个方法被称为保存数据的地方!

android android-lifecycle

6
推荐指数
1
解决办法
5883
查看次数

如何将字符与Python中某些字符串中的所有字符进行比较?

我需要编写一个函数,它接受一个字符和一个字符串作为输入,然后将该字符与字符串中的每个元素进行比较.然后打印并最终返回字符出现在字符串中的次数.

这是我提出的代码,但它没有以正确的方式运行.如果有人能解释并纠正错误,我会很感激.

我想先写一个比较两个字符的函数来检查它们是否相等,如下所示:

def func1(x1, x2):
    if x1 == x2:
        return True
    else:
        return False
Run Code Online (Sandbox Code Playgroud)

然后,我想我会选择另一个主要功能:

def func2():
    ch1 = input("Enter one character. ")
    str1 = str(input("Enter a string. "))
    list_1 = list(str1)
    a = 0
    for 1 in list_1:
        if func1(ch1, list_1):
            a += 1
        else:
            a += 0
        print(a)
        return a
Run Code Online (Sandbox Code Playgroud)

这里有什么错误?如果我选择"a"作为我的角色,然后输入一个五个字母的字符串作为我的字符串,该函数仍然告诉我"a"只出现在字符串中一次.为什么这样,我该如何解决?

python string list character string-comparison

1
推荐指数
1
解决办法
3万
查看次数