应用程序中的StartActivity关闭应用程序

时间:2018-05-08 13:22:27

标签: android oncreate start-activity android-application-class

我有一个扩展应用程序的类,从那里开始进行抖动检测,它应该打开一个活动。但是,对于特定的Activity,它会关闭应用程序。日志中没有崩溃或错误,这使得这很难调试......

启动活动的代码如下:

                int currentViewingMemberId = CommonFunctions.get_CURRENT_VIEWING_MEMBER_ID(this);
                Bitmap b = takeScreenshot();
                Intent contactAndReportIntent = ReportIssueActivity.getIntentForActivity(getApplicationContext(), true, null, b, currentViewingMemberId);
                contactAndReportIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(contactAndReportIntent);

                mSensorManager.unregisterListener(this);
                hasAccelerometerSensorBeenRegistered = false;

getIntentForActivity()方法如下:

public static Intent getIntentForActivity(Context context, boolean isFromShake, String helpTip, Bitmap screenshot, int currentViewingMemberId) {
        Intent intent = new Intent(context, ReportIssueActivity.class);
        intent.putExtra(FROM_SHAKE, isFromShake);
        if (helpTip == null) {
            helpTip = "";
        }
        if (screenshot != null) {
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            screenshot.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();
            intent.putExtra(SCREENSHOT_IMAGE, byteArray);
        }
        intent.putExtra(HELP_TIP, helpTip);
        intent.putExtra(CURRENT_VIEWING_MEMBER_ID, currentViewingMemberId);
        return intent;
    }

takeScreenshot()捕获当前窗口并成功返回一个Bitmap,但是甚至没有调用Activity onCreate()。

任何想法都会有所帮助,谢谢! :)

1 个答案:

答案 0 :(得分:0)

事实证明我在尝试返回我的活动Intent时遇到了TransactionTooLargeException。 交换:

 screenshot.compress(Bitmap.CompressFormat.PNG, 100, stream);

有:

 screenshot.compress(Bitmap.CompressFormat.JPEG, 80, stream);

修复它,因为它将屏幕截图图像大小减少到允许的数量以下。