应用程序上下文中的Android启动活动

时间:2014-07-03 18:05:47

标签: android android-activity applicationcontext

我正在尝试从扩展Application的类开始活动。我能够使用FLAG_NEW_ACTIVITY_TASK作为创建活动的标志意图。

让我举例说明我正在尝试实施的方案。

有两个用户USER1和USER2。如果USER1按下按钮(HOLD),则会在USER2的设备上创建新活动。这个在USER2设备上启动的新活动是由扩展Application的类完成的。然后,当USER1按下一个按钮(UNHOLD)时,我希望USER2的设备调出上一个活动。我能够调出之前的活动但由于FLAG_NEW_ACTIVITY_TASK标志正在重新创建,我希望恢复该活动而不是重新创建。

我被困在这里,我在谷歌搜索但无法理解我该怎么办。请帮助。

清单:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

 <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
 <uses-feature android:name="android.hardware.telephony" android:required="false" />
 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>   


<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:name=".MyApplication" >

    <service android:name=".PortSipService"></service>
    <service android:name=".Ringback"></service>

    <service android:name=".LocationService"></service>
    <activity 
        android:name=".MainActivity"
        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=".SaveContacts" android:label="@string/app_name"> </activity>
    <activity android:name=".IncomingCall" android:label="@string/app_name"> </activity>
    <activity android:name=".ContactActivity" android:label="@string/app_name"></activity>
    <activity android:name=".CallConnected" android:label="@string/app_name"></activity>
    <activity android:name=".OutgoingCall" android:label="@string/app_name"></activity>
    <activity android:name=".MusicPlayer" android:label="@string/app_name"></activity>
</application>

暂停时,

Intent music = new Intent(getApplicationContext(),MusicPlayer.class);                          music.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(music);

这是在没有按下时,

    Intent connect = new Intent(getApplicationContext(),CallConnected.class);
    connect.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    getApplicationContext().startActivity(connect);

我不希望重新创建这个callconnected活动,但这是因为intent标志。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Activity代替上下文:

Intent music = new Intent(MainActivity.this,MusicPlayer.class);
music.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainActivity.this.startActivity(music);