问题:片段onResume()在ViewPager片段实际可见之前被触发.
例如,我有2个片段与ViewPager和FragmentPagerAdapter.第二个片段仅供授权用户使用,我需要让用户在片段可见时登录(使用警告对话框).
但是ViewPager当第一个片段可见时创建第二个片段,以便缓存第二个片段,并在用户开始滑动时使其可见.
因此,onResume()事件在第二个片段变为可见之前就被触发了.这就是为什么我试图找到一个事件,当第二个片段变得可见时,它会在适当的时刻显示一个对话框.
如何才能做到这一点?
由于Unmarshalling异常,我正在恢复应用程序崩溃.我检查了所有Serializables都没有参数的构造函数,甚至使用ObjectStream检查了所有可序列化(保存到文件并从文件加载).我如何理解导致异常的parcelable偏移的实际类类型:
Parcel android.os.Parcel@42209460: Unmarshalling unknown type code
2131165303 at offset 3748
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2080)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2105)
at android.app.ActivityThread.access$600(ActivityThread.java:136)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4876)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:804)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:571)
at com.kdgdev.xtension.core.XtensionMain.main(XtensionMain.java:91)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@42209460: Unmarshalling unknown type code 2131165303
at offset 3748
at android.os.Parcel.readValue(Parcel.java:2032)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2255)
at android.os.Parcel.readSparseArray(Parcel.java:1687)
at android.os.Parcel.readValue(Parcel.java:2022)
at android.os.Parcel.readMapInternal(Parcel.java:2226)
at android.os.Bundle.unparcel(Bundle.java:223)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:1232)
at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1690)
at android.app.Activity.onRestoreInstanceState(Activity.java:999)
at com.actionbarsherlock.app.SherlockFragmentActivity.onRestoreInstanceState(Unknown
Source)
at name.myname.android.app.ui.MainActivity.onRestoreInstanceState(Unknown
Source)
at android.app.Activity.performRestoreInstanceState(Activity.java:971)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1130) …Run Code Online (Sandbox Code Playgroud) 我连续3个视图:标题,版本和imageview(作为按钮工作):
wrap_content尊重以下规则wrap_content标题的右侧和imageview的左侧问题是如果标题太大,版本移动到右边并且规则"版本在imageview左侧"不受尊重:
所以我需要限制标题宽度并使版本可见而不是向右移动.
这是XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:background="#b3b2b2">
<!-- -->
<TextView
android:id="@+id/LibraryWithVersionItem.title"
android:layout_width="0dp"
android:textStyle="bold"
android:textSize="@dimen/fontSize18"
android:textColor="@color/mySecondaryDarkColor"
android:layout_height="wrap_content"
android:ellipsize="middle"
tools:text="ExampleLibrary 01234567890123456789012345"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
/>
<Spinner
android:id="@+id/LibraryWithVersionItem.versions"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:textSize="@dimen/fontSize16"
android:textColor="@color/mySecondaryDarkColor"
tools:listitem="@layout/library_version"
android:layout_marginTop="@dimen/margin8"
android:layout_marginLeft="@dimen/margin8"
android:layout_marginRight="@dimen/margin8"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@+id/LibraryWithVersionItem.title"
app:layout_constraintRight_toLeftOf="@+id/LibraryWithVersionItem.info"
app:layout_constraintHorizontal_bias="0.0"/>
<TextView
android:id="@+id/LibraryWithVersionItem.sentence"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/LibraryWithVersionItem.title"
tools:text="Some library description in one sentence\nbut two lines"
android:layout_marginTop="@dimen/margin8"
android:layout_marginLeft="@dimen/margin8"
app:layout_constraintRight_toLeftOf="@+id/LibraryWithVersionItem.install"
android:layout_marginRight="8dp"
app:layout_constraintHorizontal_bias="0.0"/>
<TextView
android:id="@+id/LibraryWithVersionItem.isInstalled"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/LibraryManager.installed"
android:textColor="#1a7c1a"
android:layout_marginTop="@dimen/margin8"
android:layout_marginBottom="@dimen/margin8" …Run Code Online (Sandbox Code Playgroud) 这时我在Android应用程序中几乎没有付费功能.我想估算在应用中使用AdMob广告的潜在收入,并选择最佳策略:付费功能或广告.
大多数时候它工作得很好但有时我在尝试发现BLE设备时遇到此错误:
02-12 18:00:41.952 16178-16339/com.icrealtime.allie W/BleRpcConnectionFactory? Starting discovery
02-12 18:00:41.955 16178-16339/com.icrealtime.allie D/BluetoothAdapter? STATE_ON
02-12 18:00:41.957 24342-18813/? D/BtGatt.GattService? registerClient() - UUID=c4a4c56d-1d10-4615-9c8d-44971bc3d6e6
02-12 18:00:41.957 24342-24384/? E/bt_btif? Register with GATT stack failed.
02-12 18:00:41.957 24342-24384/? E/bt_btif? Register with GATT stack failed.
02-12 18:00:41.957 24342-24370/? D/BtGatt.GattService? onClientRegistered() - UUID=c4a4c56d-1d10-4615-9c8d-44971bc3d6e6, clientIf=0
02-12 18:00:41.958 16178-16190/com.icrealtime.allie D/BluetoothLeScanner? onClientRegistered() - status=133 clientIf=0
02-12 18:00:41.967 16178-16178/com.icrealtime.allie E/BleRpcConnectionFactory? BLE SCAN FAILED: 2
Run Code Online (Sandbox Code Playgroud)
它似乎是内部的android问题,但它可能会受到我的代码做错的影响.可能是什么原因以及如何解决它?
PS.Nexus 9,Android 6.0.1
如何使用Google Maps android API v2获取我的位置更改事件?
在v1中,您可以执行下一步操作以处理位置更改事件:
public class MyLocationOverlay extends com.google.android.maps.MyLocationOverlay {
/**
* Listener
*/
public interface Listener {
void onLocationChanged(android.location.Location location);
}
private Listener listener;
public MyLocationOverlay(Context context, MapView mapView, Listener listener) {
super(context, mapView);
this.listener = listener;
}
@Override
public synchronized void onLocationChanged(Location location) {
super.onLocationChanged(location);
// fire listener
if (listener != null)
listener.onLocationChanged(location);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google protobuf,我正在进行下一个描述:
message.proto文件:
message Request {
required int32 id = 1;
optional string value = 2;
}
Run Code Online (Sandbox Code Playgroud)
service.proto文件:
import "message.proto";
service Service {
rpc request (Request) returns (bool);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试生成c ++源代码并收到错误:
$ protoc service.proto --cpp_out =/tmp/proto/build
service.proto:4:40:预期的消息类型.
我是否必须仅返回用户定义的类型?是原始的(像bool或string)支持?我可以使用原始类型作为服务方法参数(而不是Request在我的示例中)吗?
Android MediaRecorder允许将视频保存到文件(文件或套接字):
setOutputFile(FileDescriptor fd);
setOutputFile(String path)
Run Code Online (Sandbox Code Playgroud)
如何将视频数据保存到OutputStream?它将用于流式视频录制.
我从官方git存储库检查了llvm/clang/compiler-rt源代码,但我有:
MBA-Anton:llvm_34_xcode_build asmirnov$ cmake -G XCode ../llvm_34
CMake Error: Could not create named generator XCode
Run Code Online (Sandbox Code Playgroud)
LLVM来源:
MBA-Anton:llvm_34_xcode_build asmirnov$ ls ../llvm_34
CMakeLists.txt Makefile.common cmake llvm.spec.in
CODE_OWNERS.TXT Makefile.config.in configure projects
CREDITS.TXT Makefile.rules docs test
LICENSE.TXT README.txt examples tools
LLVMBuild.txt autoconf include unittests
Makefile bindings lib utils
Run Code Online (Sandbox Code Playgroud)
Cmake版本:
MBA-Anton:llvm_34_xcode_build asmirnov$ cmake -version
cmake version 2.8.11.1
Run Code Online (Sandbox Code Playgroud)
根据doc和输出,该cmake版本应支持Xcode生成器:
MBA-Anton:llvm_34_xcode_build asmirnov$ cmake --help
...
Generators
The following generators are available on this platform:
Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja …Run Code Online (Sandbox Code Playgroud) android ×8
admob ×1
ads ×1
android-ndk ×1
clang ×1
cmake ×1
geolocation ×1
google-maps ×1
gradle ×1
llvm ×1
marshalling ×1
media ×1
parcelable ×1
protobuf-c ×1
rpc ×1
stream ×1
stripping ×1
xcode ×1