2017-02-01 50 views
1

私はあなたの人が、Android Intent.createChooser()を使用している間に小さな問題で私を助けてくれることを期待しています。私は私のアプリケーションと一緒に勉強しているので、私はこれがうまくいかなければならないスティックの間違った終わりを持っている場合、私は謝罪します!Android createChooserがアクティビティの前に表示されます

私はいくつかのチュートリアルに従っており、Intent.createChooser()を起動して画像をソーシャルメディアに共有するコードを実装しました。私が使用したコードは、私が意図したとおりに画像を共有できるという点で問題なく動作します。コードが実行されたときに主なアクティビティ(またはコードから呼び出されたアクティビティ)が閉じられ、私が開いているかもしれない他のアプリケーションやホームスクリーンの前に。チュートリアルで明らかになったと思われる効果は、実行中のアクティビティの前にチューザが表示されることです(ギャラリーと同じように)。

私はLibGDXを使用しています。つまり、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> 

おかげで、ベン。

+0

Androidmanifest.xmlを投稿できますか?それはおそらく事態を明らかにするでしょう。 – Alex

+0

AndroidManifest.xmlをリクエストして更新しました。 –

+0

どこから 'createShareIntent'を呼び出していますか?このShareHandlerはandroid.os.Handlerですか? – Tenfour04

答えて

-1

ご提案ありがとうございます、私は今問題を解決しました。私のコードが正しく機能していることが判明し、私が経験していた問題は、Core(LibGDX)Javaコード内のexitステートメントの結果でした。基本的にstartActivity(Intent.createChooser(...))が呼び出されたときに、コアファイル内のdispose関数も呼び出されました。これはexitコマンドを含む関数を破棄し、アプリケーションを終了させようとしていました。

0

android:name=".FacebookServiceHandler" 

は、それが絵のソーシャルメディアの共有を扱う、アクティビティであれば、私はこのような何かにそれを拡大する:

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

これはという、プログラムの開発を教えてくれますAndroidLauncherは親子関係であり、あなたのアクティビティの前に表示する必要があります。

+0

クイック返信Alexに感謝します。申し訳ありませんが、私はおそらくそのビットを削除する必要があります。 FacebookService Handlerは、私が周囲で遊んでいた別のアクティビティからのものです。実際の意図はAndroidLauncherから直接実装されています。それは答えかもしれないと言われている、私はあなたが別の活動の意図を実装することによって、上記で示唆したものを試してみましょう。私は一度それを与えて戻って報告する –

関連する問題