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% 工作。

非常感谢所有回复的人。

4

2 回答 2

1

在清单中,将下面的行添加到适当的活动中

android:finishOnTaskLaunch="true"
于 2013-03-23T15:57:22.890 回答
0

尝试在后台运行的服务,因为收音机需要在后台播放,然后单击停止服务并重新启动所有服务。

于 2013-03-23T15:41:41.290 回答