2012-12-13 94 views
1

我在我的应用程序中有2个活动。 A活动是启动器之一。当我第一次运行应用程序时,启动器活动会运行,但是当按下主页按钮并通过单击应用程序图标重新启动应用程序时,我总是会运行B活动。
我想确保活动A应该始终运行时启动应用程序。android:launchMode =“singleInstance”正在使应用程序非常缓慢

这是清单代码:

<application 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" > 
     <activity 
      android:name="com.velosys.smsManager.Activities.a" 
      android:launchMode="singleInstance" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="com.velosys.smsManager.Activities.b" /> 
</application> 

使用android:launchMode="singleInstance"成为我的目的,但它使运动从一个活动到另一个活动真的很slow.Can请你建议我要'机器人的任何选项:launchMode = “singleInstance”。请帮助我。提前感谢。

回答

2

你可以尝试重写onUserLeaveHint()在B活性的方法(这将注册主页按钮按下事件),然后创建意图

Intent startMain = new Intent(Intent.ACTION_MAIN); 
    startMain.addCategory(Intent.CATEGORY_HOME); 
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(startMain); 

这是不是一个真正的理想解决方案

编辑:

耶SRY,最好的解决办法是你打电话内完成的onPause()B活性

+0

对不起,先生()方法,但我需要的,我应该依靠一个答案。 – user1726619

+0

检查编辑并删除android:launchMode =“singleInstance” – kjurkovic

+0

先生,我不能在B活动的onPause()方法中使用finish(),因为在任何呼叫将到达设备时,onPause()将被调用,用户将不得不重新开始整个过程​​。请给我建议任何方式来处理主页按钮点击? – user1726619

相关问题