java - 进入新 Activity 时在后台运行应用程序

标签 java android android-intent android-activity

我有以下代码,可以打开浏览器访问我的社交个人资料:

    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);  
    }
});

现在我没有收到错误,但是当出现使用完成操作窗口时,我没有选择一个选项,而是按“返回”,我的应用程序就关闭了。知道如何修复它,以便如果我按“返回”它会返回到我的应用程序而不是主页吗?

更新:以下是重新措辞,以帮助更好地理解该问题。

在我的应用程序中,我有一个可打开浏览器的图像链接,但如果用户安装了多个浏览器,它会弹出“使用完成操作”窗口,我可以在其中进行选择。如果我按后退按钮,它应该关闭它并返回到我的应用程序。相反,发生的情况是,如果我按后退按钮,我的应用程序就会关闭,然后我会返回主屏幕

enter image description here

我的主要 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/

相关文章:

java - 深度优先搜索错误

Java - JFrame 在调用时不更新

android - 发送 Intent 到另一个应用程序而不在android中打开它

java - 如何更改默认自定义对话框的边框颜色?

java - 混淆字符串值java android

android - 获取 mp3 文件的 URI

java - 用Java查询MySQL数据库,指定需要哪些字段会更高效吗?

Java 并发实践 list 3.1

android - 录制视频时拍摄全分辨率照片

android - Android布局文件夹可以包含子文件夹吗?