2013-03-23 57 views
0

我发现很多关于此的线程,但没有解决我的问题。只有一个应用程序的实例

我的应用程序是一个在线广播,点击菜单或进入设备主页,广播仍在播放,这就是它应该是。

但是,当点击应用程序图标时,打开一个新的应用程序实例,只有当实例已经打开时才会返回,这使得它们可以同时播放两个无线电。要完成,那么应用程序的第一个实例必须转到“管理应用程序”菜单并终止应用程序。

我试过使用launchMode作为singleTask,singleTop,SingleInstance,但没有作品。

我怎么能解决这个问题?

我很感激任何帮助。

下面我的清单:

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

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 
    <uses-feature /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/logo_novo" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.radiomiriam.Main" 
      android:label="@string/app_name" 
      android:configChanges="orientation|keyboardHidden" 
      android:launchMode="singleInstance" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.radiomiriam.Nsi" 
      android:label="@string/app_name" > 
     </activity> 
     <activity 
      android:name="com.radiomiriam.Contato" 
      android:label="@string/contato" > 
     </activity> 
    </application> 
</manifest> 

亲爱的朋友们,在此放置错误的问题。抱歉。

问题发生单击后退按钮时,才然后把下面的函数在我的活动:

public void onBackPressed() { 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
} 

,目前正在100%。

非常感谢所有回答。

+0

只是一个建议行了,我从来没有尝试过。扩展应用程序类,并给他一个像“打开”的布尔属性,然后在你的启动活动的onCreate,如果它打开,请求应用程序,如果没有,设置打开为真,并开始活动,如果已经打开,完成您的启动活动 – lelloman 2013-03-23 15:37:40

+0

您需要设置一个标志,每次启动应用程序UI时都会被您的服务检查。 – 2013-03-23 15:37:44

+0

你可以在这里添加你的AndroidManifest.xml的相关部分到你的问题吗? – Joe 2013-03-23 15:39:20

回答

0

尝试在后台运行的服务,因为无线电需要在后台播放,并且点击停止服务并重新启动所有服务。

+0

我会尝试一下,我不想重新启动服务,因为它会从收音机休息并重新启动,并且不会变得可爱。但似乎解决方案 – 2013-03-23 16:10:06

+0

我没有使用服务,但肯定会是一个解决方案,谢谢。 – 2013-03-23 19:48:38

+0

做ü需要做的按钮被点击时 – 2013-03-24 03:52:11

1

在清单中添加下面适当的活动

android:finishOnTaskLaunch="true" 
+0

它没有工作,我会尝试使用服务,并检查该服务运行的每一个活动启动 – 2013-03-23 16:08:14

相关问题