如何避免ActivityRecord的重复完成请求

时间:2017-10-30 13:06:30

标签: android android-activity

成功登录后,从LoginActivity转到MainActivity。当我点击后退按钮时,我收到此警告。

W/ActivityManager: Duplicate finish request for ActivityRecord

当我再次启动应用程序时,再次调用LoginActivity。

成功登录后,我致电

Intent intent = new Intent(this, HomeActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    finish();

问题仅在于发布版本。

2 个答案:

答案 0 :(得分:1)

您的代码会导致两次调用 onDestroy()方法。

如果您的后退按钮仅触发完成,请将您的onBackPressed()更改为此,删除super.onBackPressed();

@Override
public void onBackPressed() {
    finish();
}

答案 1 :(得分:1)

如果这与背压无关,则可能有来自不同地方的多个完成()调用。只需检查活动是否结束,如果是,则跳过第二个电话。

<!-- language: lang-xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.v7.widget.CardView
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:layout_margin="@dimen/card_margin"
    android:elevation="3dp"
    card_view:cardCornerRadius="@dimen/card_album_radius">

    <RelativeLayout

        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:id="@+id/lnquote1"        //my layout 
            android:layout_width="match_parent"
            android:layout_height="@dimen/_150sdp"
            android:gravity="center"
            android:background="@drawable/cheese_5"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/lnquote"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:background="@drawable/scrim"
                android:orientation="vertical">


                <TextView
                    android:id="@+id/quote"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textIsSelectable="true"
                    android:paddingLeft="@dimen/album_title_padding"
                    android:paddingRight="@dimen/album_title_padding"
                    android:paddingTop="@dimen/album_title_padding"
                    android:textColor="@color/white"
                    android:text="Quotes"
                    android:gravity="center"
                    android:typeface="serif"
                    android:textSize="@dimen/album_title" />

                <TextView
                    android:id="@+id/author"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="end"
                    android:paddingLeft="@dimen/album_title_padding"
                    android:paddingRight="@dimen/album_title_padding"
                    android:paddingTop="@dimen/album_title_padding"
                    android:layout_marginTop="10dp"
                    android:layout_marginBottom="5dp"
                    android:text=" -Author"
                    android:textColor="@color/white"
                    android:textSize="@dimen/album_title" />

            </LinearLayout>

        </LinearLayout>



        <View
            android:id="@+id/viline"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_below="@id/lnquote1"
            android:layout_marginTop="2dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginBottom="5dp"
            android:background="@android:color/darker_gray" />


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal"
            android:layout_below="@id/viline">

            <LinearLayout
                android:id="@+id/lncopy"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:gravity="center_horizontal|center_vertical"
                android:layout_weight="1">

                <ImageView
                    android:id="@+id/imgcopy"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:scaleType="centerInside"
                    android:gravity="center"
                    android:background="@drawable/cop" />

                <TextView
                    android:id="@+id/txtcopy"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:layout_height="@dimen/ic_album_overflow_height"
                    android:layout_alignParentRight="true"
                    android:layout_marginLeft="2dp"
                    android:textColor="@color/album_title"
                    android:text="Copy"/>

            </LinearLayout>
            <LinearLayout
                android:id="@+id/lnshare"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:gravity="center_horizontal|center_vertical"
                android:layout_weight="1">

                <ImageView
                    android:id="@+id/imgshare"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:scaleType="centerInside"
                    android:background="@drawable/sha" />

                <TextView
                    android:id="@+id/txtshare"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:layout_height="@dimen/ic_album_overflow_height"
                    android:layout_alignParentRight="true"
                    android:layout_marginLeft="4dp"
                    android:textColor="@color/album_title"
                    android:text="Share"/>

            </LinearLayout>
            <LinearLayout
                android:id="@+id/lnfav"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:gravity="center_horizontal|center_vertical"
                android:layout_weight="1">

                <ImageView
                    android:id="@+id/imgfav"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:scaleType="centerInside"
                    android:tag="bg1"
                     />

            </LinearLayout>


        </LinearLayout>

    </RelativeLayout>

</android.support.v7.widget.CardView>