只有一个应用程序实例

时间:2013-03-23 15:33:33

标签: android android-manifest

我找到了许多有关此事的线索,但没有解决我的问题。

我的应用程序是一个在线广播,点击菜单或转到设备的主页,收音机仍在播放,这应该是它。

但是当点击应用程序图标时,打开一个新的应用程序实例,只有在实例已经打开时才会返回,它会让它们同时播放两个无线电。要完成,则需要第一个应用程序实例进入“管理应用程序”菜单并终止该应用程序。

我尝试将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%工作。

非常感谢所有回复的人。

2 个答案:

答案 0 :(得分:1)

在清单中,将下面的行添加到相应的活动

android:finishOnTaskLaunch="true"

答案 1 :(得分:0)

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