[英]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.