我知道关于这个主题有很多类似的问题,但是我无法找到他们的解决方案,所以如果它听起来可能重复,那就很抱歉。
在我的应用程序中,我正在使用PayPal SDK v2.6。我有这个订单审核活动,在那里我向用户显示他订单的所有详细信息,我有一个付费按钮,用于打开PayPal付款活动。
我想阻止用户在PayPal活动中持有太长时间,因此,从用户点击打开PayPal活动的按钮开始,我启动了一个10分钟的计时器。
我正在尝试的是在计时器结束时从订单活动的代码文件中完成PayPal活动,因为整个PayPal过程代码都写在我的订单活动中。
我使用PayPal开始活动结果和结果机制,我对PayPal中发生的事情没有任何控制,我只是处理结果。
以下是我启动PayPal服务的代码段:
paypalServiceIntent = new Intent(this, PayPalService.class);
paypalServiceIntent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config);
startService(paypalServiceIntent);
然后我开始这样的paypal活动:
startTimer(); // my timer mechanism
PayPalPayment payment = new PayPalPayment(new BigDecimal("" + finalPrice), "HKD", subProduct.getString("SubProductName").trim(),
PayPalPayment.PAYMENT_INTENT_SALE);
Intent intent = new Intent(ReviewOrderActivity.this, PaymentActivity.class);
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);
startActivityForResult(intent, 0);
然后我在订单类文件中有我的计时器代码(我添加了我试图关闭paypal活动的所有操作):
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
stopService(paypalServiceIntent); // not closing paypal activity
finish(); // not closing paypal
onBackPressed(); // not closing paypal
onDestroy(); // not closing paypal
finishActivity(0); // not closing paypal
}
}, 10*60*1000);
非常感谢任何形式的帮助。