簡體   English   中英

Android createChooser出現在Activity的前面

[英]Android createChooser appear in front of Activity

我希望你們中的一員能在使用Android Intent.createChooser()時遇到的一個小問題幫助我。 我在學習應用程序時正在學習,因此如果我堅持到底應該如何工作,我深表歉意!

我一直在關注許多教程,並實現了一些代碼,這些代碼啟動了一個Intent.createChooser()以將圖片共享給社交媒體。 我使用的代碼可以正常工作,因為我能夠按預期共享圖片,我的問題是,當代碼運行時,我的主要活動(或我從中調用代碼的任何活動)似乎關閉並且選擇器出現在主屏幕或我可能已打開的任何其他應用程序之前。 我希望獲得的效果以及在教程中似乎很明顯的效果是使選擇者出現在正在運行的活動的前面(例如,對於畫廊而言)。

我正在使用LibGDX,這意味着我不得不使用一個接口來調用執行選擇器代碼的android函數(在我的AndroidLauncher Java文件中)。 所有的接口都可以正常工作,但是我不確定這可能與這段代碼的運行方式有關。 我還嘗試過切換到一個新的活動,以實現選擇器代碼,該代碼已從AndroidLauncher移走。 這具有相同的最終結果。

任何有關如何使選擇器出現在我的應用程序前面的建議將不勝感激! 下面包括實現createChooser的代碼:

public void ShareHandler(){
    String type = "image/*";
    String mediaPath = Environment.getExternalStorageDirectory().getPath()+"/Smile.png";
    createShareIntent(type, mediaPath);
}

private void createShareIntent(String type, String mediaPath)
{
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType(type);
    File media = new File(mediaPath);
    Uri uri = Uri.fromFile(media);
    share.putExtra(Intent.EXTRA_STREAM, uri);
    startActivity(Intent.createChooser(share, "Share to"));
}

Android清單:

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="25" />

    <uses-permission android:name="android.permission.INTERNET" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/GdxTheme">
        <activity
            android:name=".AndroidLauncher"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
            android:label="@string/app_name"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".FacebookServiceHandler" />

        <meta-data
            android:name="come.facebook.sdk.ApplicationID"
            android:value="@string/facebook_app_id" />

        <provider
            android:name="com.facebook.FacebookContentProvider"
            android:authorities="com.facebook.app.FacebookContentProviderxxxxxxxxxxxxx"
            android:exported="true" />

    </application>

</manifest>

預先感謝,本。

如果

android:name=".FacebookServiceHandler"

是活動,處理圖片的社交媒體共享,我將其擴展為以下內容:

<activity
    android:name=".FacebookServiceHandler">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".AndroidLauncher">
    </meta-data>
</activity>

這將告訴程序,AndroidLauncher是父項活動,應使其出現在活動的前面。

謝謝您的建議,我現在已經解決了我的問題。 事實證明,我的代碼一直都能正常工作,而我遇到的問題是由於我的Core(LibGDX)Java代碼中的退出語句導致的。 本質上,當調用startActivity(Intent.createChooser(...))時,還調用了我核心文件中的dispose函數。 此處理函數包含exit命令,並導致應用程序完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM