我有一个流程大致的应用程序:
我知道第一次调用时数据是存在的,因为如果不是,应用程序就会死掉.
我知道当用户返回活动A(通过'后退'键)时数据不存在,因为应用程序死了(来自onCreate()的extras.getString(...)的空指针).
这是预期的行为吗?
我应该在onSaveInstanceState()中保存extras包的内容吗?
编辑:下面的代码片段:
主要活动使用以下内容启动新活动:
Intent i = new Intent(a, BookISBNSearch.class);
i.putExtra(BookISBNSearch.BY, "isbn");
a.startActivityForResult(i, R.id.ACTIVITY_CREATE_BOOK_ISBN);
Run Code Online (Sandbox Code Playgroud)
BookISBNSearch中的onCreate读取:
...
Bundle extras = getIntent().getExtras();
mIsbn = extras.getString("isbn");
String by = extras.getString(BY);
...
Run Code Online (Sandbox Code Playgroud)
稍后使用它:
if (mIsbn != null) {
....do some stuff....
} else if (by.equals("isbn")) {
....do some other stuff....
Run Code Online (Sandbox Code Playgroud)
用户可以从BookISBNSearch开始另一个活动.启动新活动的代码是:
/*
* Start scanner activity.
*/
private void startScannerActivity() {
if (mScannerIntent == null) {
mScannerIntent = new Intent("com.google.zxing.client.android.SCAN");
}
if (!mScannerStarted) …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的项目:
- project
- app
- src.../cpp/
- src.../java/
- other modules...
Run Code Online (Sandbox Code Playgroud)
cpp代码是在build.gradle中使用cmake构建的:
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
Run Code Online (Sandbox Code Playgroud)
和
buildTypes {
...
debug {
debuggable true
jniDebuggable true
externalNativeBuild {
cmake {
arguments "-DCMAKE_BUILD_TYPE=Debug"
abiFilters "armeabi-v7a", "armeabi", "x86"
}
}
}
}
productFlavors {
...
experimental {
externalNativeBuild {
cmake {
targets "sqlite_gcd_func"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
其中 CMakeLists.txt 是:
cmake_minimum_required(VERSION 3.6)
add_library( # Specifies the name of the library.
sqlite_gcd_func
# Sets the library as a …Run Code Online (Sandbox Code Playgroud) 我有一个简单的 perl 脚本,它使用 LWP::UserAgent 连接到安全站点。效果很好。当我使用 Mojo::UserAgent 时,它无法验证证书。这是可靠且可重复的。基本的 Perl 代码是:
use strict;
use warnings;
use IO::Socket::SSL 1.980;
use LWP::UserAgent;
use Mojo::UserAgent;
$IO::Socket::SSL::DEBUG=3;
my $dst = "<DOMAIN>";
my $url = "<URL-AT-DOMAIN>";
my $A_OR_B = 1;
my $ua;
if ($A_OR_B) {
$ua = Mojo::UserAgent->new();
$ua->connect_timeout(20);
} else {
$ua = LWP::UserAgent->new();
}
my $resp = $ua->get($url);
if ($A_OR_B) {
print $resp->result->message;
print $resp;
} else {
print $resp->status_line."\n";
}
Run Code Online (Sandbox Code Playgroud)
IO::Socket 调试的输出是:
对于 Mojo(失败):
DEBUG: .../IO/Socket/SSL.pm:3010: new ctx 48892560
DEBUG: .../IO/Socket/SSL.pm:1638: don't start handshake: …Run Code Online (Sandbox Code Playgroud)