按下设备的主页键后,如何在图标按下时始终打开当前活动

时间:2013-12-28 11:19:13

标签: android android-activity android-homebutton

按下主页键后,我真的有活动启动的东西。假设我有三个A,B,C活动,我禁用设备上的背压。假设A是我的主要启动器活动,我从A移动到B和B移动到C并按下主页键并再次单击图标然后它始终启动A即启动器。但是当我按下C上的主页键然后点击图标应该始终以C Activity开头时我不想这样。如果我按下B活动上的主页键,则总是想要点击图标打开B动作。如何做到这一点。

还有一件事,我不明白安装完成后它有两个选项DONE和OPEN。所以当按下Done时,它在带有当前活动的home的按键上工作正常,但是当以OPEN开始时,它总是启动A活动,在任何当前活动按主页键后点击图标启动一个。

如何解决这个问题?谢谢你们

Manifest.xml文件:

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.sendmyposition.A"
            android:configChanges="orientation|keyboardHidden|screenSize" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.sendmyposition.B"
            android:configChanges="orientation|keyboardHidden|screenSize" >
        </activity>
        <activity
            android:name="com.example.sendmyposition.C"
            android:configChanges="orientation|keyboardHidden|screenSize" >
        </activity>
    </application>

</manifest>

致电行为A至B

   Intent intent = new Intent(A.this, B.class)
            startActivity(intent);
finish()

并将B调用到C

Intent intent = new Intent(B.this, C.class)
            startActivity(intent);

1 个答案:

答案 0 :(得分:1)

您可以使用Preferences执行此操作...包 android.preference提供管理应用程序首选项和实现首选项UI的类。使用这些可确保每个应用程序中的所有首选项以相同的方式维护,并且用户体验与系统和其他应用程序的用户体验保持一致。

您可以在SharedPreferences中保存当前活动名称(字符串),然后在应用程序启动后在MainActivity中读取此字符串以打开上次打开的活动。

在这里查看 jukas 回答:How to start another Activity as main and launcher after Deploying the application into device

或者你可以从这里使用这个PoC:How to return to the latest launched activity when re-launching application after pressing HOME?

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
        // Activity was brought to front and not created, 
        // Thus finishing this will get us to the last viewed activity 
        finish(); 
        return; 
    } 

    // Regular activity creation code... 
}