我有以下代码,可以打开浏览器访问我的社交个人资料:
ImageView iv1 = (ImageView) dialog.findViewById(R.id.imgFB);
iv1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Uri uri = Uri.parse("https://www.facebook.com/profile");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});
现在,当我选择浏览器打开配置文件并按返回时,它不仅会关闭浏览器,还会关闭我的应用程序。有什么方法可以在关闭浏览器的同时让我的应用程序在后台运行吗?
更新:
这工作正常:
ImageView iv1 = (ImageView) dialog.findViewById(R.id.imgFB);
iv1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Uri uri = Uri.parse("https://www.facebook.com/PagesByZ"); //Uri.parse("market://details?id=" + facebookpackagename);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
//intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
dialog.dismiss();
startActivity(intent);
}
});
现在我没有收到错误,但是当出现使用完成操作
窗口时,我没有选择一个选项,而是按“返回”,我的应用程序就关闭了。知道如何修复它,以便如果我按“返回”它会返回到我的应用程序而不是主页吗?
更新:以下是重新措辞,以帮助更好地理解该问题。
在我的应用程序中,我有一个可打开浏览器的图像链接,但如果用户安装了多个浏览器,它会弹出“使用完成操作”窗口,我可以在其中进行选择。如果我按后退按钮,它应该关闭它并返回到我的应用程序。相反,发生的情况是,如果我按后退按钮,我的应用程序就会关闭,然后我会返回主屏幕
我的主要 Activity : http://pastebin.com/FVwEKLAT
我的 AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sikni8.tollculator"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.sikni8.tollculator.MainActivity"
android:label="@string/app_name"
android:noHistory="true"
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="com.sikni8.tollculator.CurrentTrip"
android:label="@string/title_activity_current_trip"
android:parentActivityName="com.sikni8.tollculator.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.sikni8.tollculator.MainActivity" />
</activity>
<activity
android:name="com.sikni8.tollculator.DisplayTrip"
android:label="@string/title_activity_display_trip"
android:parentActivityName="com.sikni8.tollculator" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.sikni8.tollculator" />
</activity>
<activity
android:name="com.sikni8.tollculator.ShowHelp"
android:label="@string/app_name" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.sikni8.tollculator.MainActivity" />
</activity>
<activity
android:name="com.sikni8.tollculator.ShowSettingOptions"
android:label="@string/app_name" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.sikni8.tollculator.MainActivity" />
</activity>
</application>
</manifest>
如何确保如果用户改变主意不再访问浏览器并按后退按钮,它只会返回到我的应用程序而不是转到主屏幕?
如果他们确实转到浏览器并按后退键关闭浏览器并且我的应用程序将返回查看,是否还要修复上述修复?
最佳答案
也许一个对话框正试图从一个也关闭的 Activity(您的 MainActivity)中显示...您在单击 ImageView 后是否触发了一个对话框?
参见this post以及。 (因为您的日志显示“com.myapp.tollculator.MainActivity 已泄漏窗口”)
关于java - 进入新 Activity 时在后台运行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18261890/