相关疑难解决方法(0)

onActivityResult()之前是否调用onResume()?

以下是我的应用程序的布局:

  1. onResume()用户被提示登录
  2. 如果用户登录,他可以继续使用应用程序 3.如果用户随时退出,我想再次提示登录

我怎样才能做到这一点?

这是我的MainActivity:

@Override
    protected void onResume(){
        super.onResume();

        isLoggedIn = prefs.getBoolean("isLoggedIn", false);

        if(!isLoggedIn){
            showLoginActivity();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的LoginActivity:

@Override
        protected void onPostExecute(JSONObject json) {
            String authorized = "200";
            String unauthorized = "401";
            String notfound = "404";
            String status = new String();

            try {
                // Get the messages array
                JSONObject response = json.getJSONObject("response");
                status = response.getString("status");

                if(status.equals(authorized)){
                    Toast.makeText(getApplicationContext(), "You have been logged into the app!",Toast.LENGTH_SHORT).show();
                    prefs.edit().putBoolean("isLoggedIn",true);

                    setResult(RESULT_OK, getIntent());
                    finish();
                }
                else if (status.equals(unauthorized)){
                    Toast.makeText(getApplicationContext(), "The username and password you …
Run Code Online (Sandbox Code Playgroud)

java android activity-lifecycle android-lifecycle android-activity

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

在onActivityResult问题中的活动状态

在onActivityResult中,我对Activity的状态有疑问.具体来说,是否"保证"onAestoreInstanceState或onCreate在onActivityResult之前调用了一个Activity?换句话说,假设在onActivityResult中(假设您已正确处理onRestoreInstanceState和/或onCreate),可以安全地假设Activity的状态数据(成员变量等)是"可用的"?

android android-activity

7
推荐指数
1
解决办法
7473
查看次数

用户按下主页按钮时Android检查应用是否达到了后台?

我是Android的新手,我需要知道每当App从后台恢复时我需要显示密码锁定屏幕我按照这个链接并且能够得到它但是每当我用来调用相机意图或图库选择意图应用程序将转到后台然后出现锁定屏幕而我需要知道应用程序是否在用户主页按钮按下时达到了背景

android android-intent

5
推荐指数
1
解决办法
1054
查看次数

Android Braintree SDK - onPaymentMethodNonce() 从未调用

我们在我们的应用程序中使用 Braintree SDK 和 PayPal,使用户能够进行应用程序内购买。不幸的是,我们无法使用 Braintree 从 PayPal 付款信息或用户输入的信用卡信息创建随机数。

以下是我们具体实现的一些背景:

我们通过以下方式使用我们的客户端令牌初始化 Braintree 对象:

Braintree braintree = Braintree.getInstance(context, token);
Run Code Online (Sandbox Code Playgroud)

我们还为实现 Braintree.PaymentMethodNonceListener 的 Fragment 设置了 Braintree 侦听器。在 activityCreated() 上,我们使用上述代码初始化 Braintree 对象。onPause() 我们删除了监听器,而 onResume() 我们添加了监听器。

在应用程序中,我们允许用户通过 PayPal 或信用卡付款。

如果用户选择使用 PayPal,我们会使用唯一的请求代码启动 PayPal 活动的意图。使用以下代码块,我们收到来自 PayPal 活动完成的响应。

@Override
public void onActivityResult(int requestCode, int responseCode, Intent data) {
    if (requestCode == PAYPAL_REQUEST_CODE) {
        if (responseCode == FragmentActivity.RESULT_OK) {
            braintree.finishPayWithPayPal(getActivity(), responseCode, data);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

根据此处看到的 Braintree SDK 文档,

此外,我们为用户提供了输入信用卡信息的能力,然后我们用它来构造一个 CardBuilder 对象,该对象通过“tokenize”方法传递给 Braintree 对象,如下面的代码片段所示:

 CardBuilder cardBuilder …
Run Code Online (Sandbox Code Playgroud)

android paypal credit-card in-app-purchase braintree

5
推荐指数
0
解决办法
2355
查看次数

OnActivityResult和OnResume的执行顺序

我知道OnActivityResult应该在一个Activity中的OnResume之前立即调用,但这不会发生在我身上.我发现它在OnResume之前被调用,甚至在OnStart之前.我的示例代码如下,我正在查看相关方法,以了解发生了什么.这是怎么回事?

活动1

using System;
using System.Collections.Generic;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Content.PM;

namespace LifecycleTest
{
    [Activity(MainLauncher = true)]
    public class Activity1 : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            this.SetContentView(Resource.Layout.Main);

            this.FindViewById<Button>(Resource.Id.button1).Text = "Start Activity 2";
            this.FindViewById<Button>(Resource.Id.button1).Click += button_Click;
        }

        void button_Click(object sender, EventArgs e)
        {
            Intent i = new Intent(this, typeof(Activity2));
            this.StartActivityForResult(i, 1);
        }

        protected override void OnStop()
        {
            base.OnStop();
        }

        protected override void OnResume()
        {
            base.OnResume();
        }

        protected override …
Run Code Online (Sandbox Code Playgroud)

android xamarin.android android-activity

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

LocalBroadcastReciever 无法在片段中工作

我正在尝试使用本地广播接收器在 editText 字段(位于片段内)内显示扫描的条形码。

这是我的代码:

MainActivity.java 中的 OnActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent intent){
    Log.d("onActivityResultCalled", "yes");
    if(requestCode == IntentIntegrator.REQUEST_CODE){
        if (resultCode == RESULT_OK){
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            Log.d("content", contents);
            Log.d("format", format);
            Log.d("sender", "Broadcasting message");
            Intent scanIntent = new Intent("scanEvent");
            scanIntent.putExtra("isbn",contents);
            LocalBroadcastManager.getInstance(this).sendBroadcast(scanIntent);



        }else if(resultCode == RESULT_CANCELED){
            Log.e("MainActivity","Scan cancelled?");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

接收广播并显示 isbn 的代码:

@Override
public void onResume()
{
    super.onResume();
    LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mMessageReceiver,
            new IntentFilter("scanEvent"));
}

// Our handler for received Intents. This will be called whenever an …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-broadcast

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