当我试图调用startActivityForResult()时调用onDestroy()

时间:2014-10-16 09:11:00

标签: android android-intent android-activity activity-lifecycle

我注意到我的应用中有一种奇怪的行为。

我有一个StartActivity来检查用户是否经过身份验证(这是查看内容所必需的)。如果是,则会调用finish()并以内容开始(startActivityActivity

如果用户未经过身份验证,则SignInActivity启动startActivityForResult

这是在奇怪的事情开始发生的时候 - 立即,在调用startActivityForResult之后,调用onDestoryed。取消SignInActivity后,onCreate再次调用StartActivitySignInActivity即被启动。当我再次取消ActivityStartActivity次来电finish()时(预期){/ p>

修改

@Seshu Vinay已经问'取消SignInActivity'是什么意思。

它基本上意味着响应软件/硬件back按下(不在Action Bar!中)并取决于默认结果。

Edist#2 继承我的Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp"
    android:versionCode="4"
    android:versionName="1.1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:name=".MyApp"
        android:theme="@style/AppTheme.NoActionBar" >
        <activity
            android:name=".StartActivity"
            android:screenOrientation="sensorLandscape"
            android:theme="@style/AppTheme.NoActionBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".SignIn"
            android:theme="@style/AppTheme"
            android:screenOrientation="sensorLandscape"
            android:windowSoftInputMode="adjustResize"
        />
        <activity
            android:name=".ContentActivity"
            android:theme="@style/AppTheme"
            android:screenOrientation="sensorLandscape"
            >
        </activity>
    </application>
</manifest>

编辑#3 我在SignIn中开始onCreate

Intent i = new Intent(this, SignInActivity.class);
startActivityForResult(i, 123);

我创建了一个简单的项目,可以重现可用的问题here(github)

0 个答案:

没有答案