这是一个巨大的Android编程问题/错误.
调用finishAffinity()不会关闭我的应用程序.
这可以从以下事实得到证明:
1.即使应用程序从屏幕上消失并且我又回到手机主屏幕,Android Studio调试器仍然会显示"应用程序正在运行".
2.当' 重新启动 '应用程序时,初始活动的数据成员的值保持与应用程序假定" 关闭 " 之前的值相同.
3.如果我在finishAffinity()之后直接调用System.exit(0),则关闭正常,数据成员将重置为其初始默认值.
对这个问题有更大的影响!当我打电话完成()内ActivityA开始另一个后ActivityB,如果我回去ActivityA那么数据成员没有被重置为默认值仍然是旧值.
这一切混乱的,因为我来自C++在当一个类被销毁那么它是我ACTUALLY破坏,与之相关联的所有内存完全释放.
在切换到新活动或尝试退出应用程序时让活动完全删除自身似乎是不可能的.
public class Startup extends AppCompatActivity
{
private static int iStarted = 0;
............
@Override
protected void onActivityResult(int request, int result, Intent data)
{
super.onActivityResult(request, result, data);
if (request == RESULT_EULA_RETURNED)
{
// shutdown
finishAffinity(); // iStarted remains = 1
return;
}
}
..........
@Override
protected void onResume() …Run Code Online (Sandbox Code Playgroud) 已成功配置我的 PayPal Webhook 以收到所有事件的通知。
当事件发生时,PayPal 会调用我的 webhook(一个简单的脚本)...但不会发送任何 POST 数据...
当然,除了$_SERVER之外,所有 PHP 数组都是空的($_POST、$_GET、$_REQUEST )。
到底是怎么回事?Webhook 模拟器表示事件已成功发送/排队...
$_SERVER数组包含建议的HTTP_PAYPAL_...标头和所有内容...但$_POST数组为空。
我的webhook写成如下...
<?php
require ('./ace-includes/ace_log.php');
ace_log(print_r($_POST, true));
ace_log(print_r($_REQUEST, true));
ace_log(print_r($_GET, true));
ace_log(print_r($_SERVER, true));
ace_sendlog("NOTIFY SCRIPT CALLED");
?>
Run Code Online (Sandbox Code Playgroud)