Android的 - 活动未恢复执行停止 [英] Android - Performing stop of activity that is not resumed

查看:2245
本文介绍了Android的 - 活动未恢复执行停止的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我把我的应用程序的背景,并做一些其他的东西像WhatsApp的或短信,onResume它的伟大工程。
 但最近我发现,当我打开/推出的Facebook应用程序,而我的应用程序是在后台,我不知道会发生什么......
但是onResume,应用程序行为不端...
不要做什么,它需要做的,但是当我回到主页,回来能正常工作 请帮我..如何解决它???

LogCat中的所有邮件(不带过滤器)

 十二月10号至15号:53:59.899:I /肾上腺EGL(32033):远程分支:QUIC / LNX.LA.3.5.1_RB1.1
十二月10日至十五日:53:59.899:I /肾上腺EGL(32033):本地修补程序:否
十二月10日至十五日:53:59.899:I /肾上腺EGL(32033):重建科:AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018 + f2fd134 + NOTHING
十二月10日至十五日:53:59.924:D / OpenGLRenderer(32033):启用调试模式0
十二月10日至十五日:54:00.000:V / AlarmManager(7677):发送报警报警{42cfa490 3型机器人}
十二月10日至十五日:54:00.110:I / ActivityManager(7677):显示uk.org.hum​​anfocus.hfi / .EvaluateTrainingActivity:+ 838ms
十二月10日至十五日:54:00.114:D / WifiStateMachine(7677):的handleMessage:电子msg.what = 151572
十二月10日至十五日:54:00.114:D / WifiStateMachine(7677):processMsg:ConnectedState
十二月10日至十五日:54:00.114:D / WifiStateMachine(7677):processMsg:L2ConnectedState
十二月10日至十五日:54:02.258:V / AlarmManager(7677):发送报警报警{42ebd600 1型com.facebook.katana}
十二月10日至十五日:54:02.274:V / AlarmManager(7677):发送报警报警{42ec0ff0 1型com.android.chrome}
十二月10日至十五日:54:02.428:D / hardware_info(7386):hw_info_append_hw_type:DEVICE_NAME =音箱
十二月10日至十五日:54:03.011:W / BroadcastQueue(7677):权限拒绝:广播意图{行动= android.net.conn.INET_CONDITION_ACTION FLG = 0x4000010(有演员)}从零(PID = -1,UID =  - 1)要求com.facebook.permission.prod.FB_APP_COMMUNICATION由于注册的接收器BroadcastFilter {41fdecd0 U0 ReceiverList {42b2f608 31941 com.facebook.katana / 10103 / U0远程:429a17e8}}
十二月10日至十五日:54:03.011:W / BroadcastQueue(7677):权限拒绝:广播意图{行动= android.net.conn.CONNECTIVITY_CHANGE FLG = 0x4000010(有演员)}从零(PID = -1,UID =  - 1)要求com.facebook.permission.prod.FB_APP_COMMUNICATION由于注册的接收器BroadcastFilter {41fdecd0 U0 ReceiverList {42b2f608 31941 com.facebook.katana / 10103 / U0远程:429a17e8}}
十二月10日至十五日:54:03.118:D / WifiStateMachine(7677):的handleMessage:电子msg.what = 151572
十二月10日至十五日:54:03.118:D / WifiStateMachine(7677):processMsg:ConnectedState
十二月10日至十五日:54:03.118:D / WifiStateMachine(7677):processMsg:L2ConnectedState
十二月10日至十五日:54:03.140:D / WifiStateMachine(7677):的handleMessage:X
十二月10日至十五日:54:03.141:D / GCoreFlp(8174):未知待定意图删除。
十二月10日至十五日:54:03.145:W / fb4a(:<默认>):AbstractMqttPushService(31941):尝试启动服务已启动
十二月10日至十五日:54:03.242:D / WifiStateMachine(7677):的handleMessage:电子msg.what = 131155
十二月10日至十五日:54:03.242:D / WifiStateMachine(7677):processMsg:ConnectedState
十二月10日至十五日:54:03.243:D / WifiStateMachine(7677):processMsg:L2ConnectedState
十二月10日至十五日:54:03.245:D / WifiStateMachine(7677):的handleMessage:X
十二月10日至十五日:54:03.319:D / dalvikvm(31941):GC_CONCURRENT释放1833K,免费9%2019​​0K / 22072K,暂停为5ms + 7毫秒,总86ms
十二月10日至十五日:54:03.320:D / dalvikvm(31941):WAIT_FOR_CONCURRENT_GC受阻68ms
十二月10日至十五日:54:03.323:W / MediaPlayer的-JNI(31941):MediaPlayer的完成而不释放
十二月10日至十五日:54:03.452:W / BroadcastQueue(7677):权限拒绝:广播意图{行动= android.net.conn.CONNECTIVITY_CHANGE FLG = 0x4000010(有演员)}从零(PID = -1,UID =  - 1)要求com.facebook.permission.prod.FB_APP_COMMUNICATION由于注册的接收器BroadcastFilter {42b51d68 U0 ReceiverList {429feb50 31941 com.facebook.katana / 10103 / U0远程:41fb8788}}
十二月10日至十五日:54:03.573:W / fb4a(:<默认>):JACKSON_FALLBACK(31941):使用com.fasterxml.jackson.databind.deser.std.EnumDeserializer@42914bc8反序列化[简单类型,类融为一体。 facebook.common.util.TriState]
十二月10日至十五日:54:03.587:W / fb4a(:<默认>):JACKSON_FALLBACK(31941):使用com.fasterxml.jackson.databind.deser.std.EnumDeserializer@42bb3100反序列化[简单类型,类融为一体。 facebook.contacts.graphql.contactprofiletype.ContactProfileType]
十二月10日至十五日:54:03.957:​​D / dalvikvm(31941):GC_CONCURRENT释放3400K,免费15%20455K / 23952K,暂停4毫秒+ 7毫秒,总88ms
十二月10日至十五日:54:03.957:​​D / dalvikvm(31941):WAIT_FOR_CONCURRENT_GC受阻75ms
十二月10日至十五日:54:04.099:W / fb4a(:<默认>):JACKSON_FALLBACK(31941):使用BeanSerializer的com.facebook.katana.newbookmark.qe.NewBook​​markConfig序列化类com.facebook.katana.newbookmark。 qe.NewBook​​markConfig
十二月10日至十五日:54:04.119:D / WifiStateMachine(7677):的handleMessage:电子msg.what = 151572
十二月10日至十五日:54:04.120:D / WifiStateMachine(7677):processMsg:ConnectedState
十二月10日至十五日:54:04.120:D / WifiStateMachine(7677):processMsg:L2ConnectedState
十二月10日至十五日:54:04.124:D / WifiStateMachine(7677):的handleMessage:X
十二月10日至十五日:54:04.177:W / fb4a(:<默认>):JACKSON_FALLBACK(31941):使用com.fasterxml.jackson.databind.deser.std.EnumDeserializer@42a30980反序列化[简单类型,类融为一体。 facebook.platform.webdialogs.PlatformWebViewActionManifest $ FetchState]
十二月10日至十五日:54:04.197:I / dalvikvm(31941):找不到方法com.android.internal.widget.ILockSettings $ Stub.a,从方法com.facebook.keyguardtype.LockSettingsServiceKeyguardTypeResolver.b引用
十二月10日至十五日:54:04.197:W / dalvikvm(31941):VFY:无法解析静态方法5338:LCOM /安卓/内部/空间/ ILockSettings $存根; .A(Landroid / OS /的IBinder;)LCOM /安卓/内部/空间/ ILockSettings;
十二月10日至十五日:54:04.197:D / dalvikvm(31941):VFY:更换运code 0x71为0x0023
十二月10日至十五日:54:04.440:I / SBar.NetworkController(7758):onSignalStrengthsChanged SignalStrength:19 0 -120 -160 -120 -1 -1 99 2147483647 2147483647 2147483647 2147483647 2147483647 GSM | LTE 0 -108 -1假5 0 0 0 99 99 99 5级= 5
十二月10日至十五日:54:04.814:V / WebViewChromiumFactoryProvider(31941):铬绑定到主活套活套(主,TID 1){} 41f8cbd0
十二月10日至十五日:54:04.815:I / LibraryLoader(31941):预计本机库版本号,实际本地库版本号
十二月10日至十五日:54:04.816:I /铬(31941):[INFO:library_loader_hooks.cc(116)]铬启用日志记录:级别= 0,默认的详细程度= 0
十二月10日至十五日:54:04.817:I / BrowserStartupController(31941):初始化铬工艺,提炼= 0
十二月10日至十五日:54:04.822:E / AudioManagerAndroid(31941):蓝牙许可丢失!
十二月10日至十五日:54:04.864:W /铬(31941):警告:proxy_service.cc(890)PAC支持禁用,因为没有系统的实现
十二月10日至十五日:54:05.121:D / WifiStateMachine(7677):的handleMessage:电子msg.what = 151572
十二月10日至十五日:54:05.121:D / WifiStateMachine(7677):processMsg:ConnectedState
十二月10日至十五日:54:05.122:D / WifiStateMachine(7677):processMsg:L2ConnectedState
 

这是onResume()

  super.onResume();

        如果(backgroundThreadRunning ==真){
            backgroundThreadRunning = FALSE;
        }

        如果(Constants.isVideoEditing)
            editingProgress.setVisibility(View.VISIBLE);
        其他
            editingProgress.setVisibility(View.GONE);

        如果(Constants.isAudioProcessing)
            addAudioProgress.setVisibility(View.VISIBLE);
        其他
            addAudioProgress.setVisibility(View.GONE);

        如果(isHomeKey pressed()&安培;&安培;!(isRecentActivity)){
            isRecentActivity = FALSE;
            Homekey酒店pressed(假);
            AlertDialog.Builder AB =新AlertDialog.Builder(
                    CreateTrainingActivity.this);
            ab.setMessage(
                    由于其他应用程序启动,视频处理将被取消!\ n您确定要取消吗?)
                    .setPositiveButton(是,dialogClickListener)
                    .setNegativeButton(否,dialogClickListener).show();
        }

    };
 

编辑:我怎么固定的问题

我写了 onResume这code()方法

 尝试{
    //检查是否有任何看法存在于当前视图
    风格=((按钮)findViewById(R.id.xyz_button));
}赶上(例外五){
    //找不到按钮
    //这意味着,您的按钮并不在当前的看法存在
    //这是从内存中释放,从而进行停止活动
    //在这种情况下,我重新启动我的应用程序
    意图I =新意图();
    i.setClass(getApplicationContext(),MainActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(ⅰ);
    //显示举杯用户
    Toast.makeText(getApplicationContext(),数据丢失,由于过量使用其他应用程序,Toast.LENGTH_LONG).show();
}
 

解决方案

一号线:看来你的一些行为变量中解脱出来,从内存中的Andr​​oid操作系统所需内存的Facebook应用程序。

说明:在前台应用程序需要更多的内存比可用,Android的释放从在后台运行的应用程序的一些内存。前景任务总是优先级高于背景的应用程序

那么,什么可能发生在你的应用程序,同时它在背景是它的一些变量已经失去了,你在你的onResume使用的是()的值。正因为如此,他们都抱着错误的值或默认值(您可以通过使用SYSOUT检查),因为它们是重新创建,当您再次把你的应用程序,以前景和因其中一些你code是不工作的权利。

When i push my app to background, and do some other stuff like whatsapp or sms, onResume it works great.
But i recently discovered that when i open/launch facebook app while my app is on background, i dont know what happens...
But onResume, the app misbehaves...
Dont do what it is required to do, but when i go back to homepage and come back it works fine Please help me out.. how to fix it ???

LogCat with all messages (without filter)

10-15 12:53:59.899: I/Adreno-EGL(32033): Remote Branch: quic/LNX.LA.3.5.1_RB1.1
10-15 12:53:59.899: I/Adreno-EGL(32033): Local Patches: NONE
10-15 12:53:59.899: I/Adreno-EGL(32033): Reconstruct Branch: AU_LINUX_ANDROID_LNX.LA.3.5.1_RB1.04.04.02.048.018 + f2fd134 +  NOTHING
10-15 12:53:59.924: D/OpenGLRenderer(32033): Enabling debug mode 0
10-15 12:54:00.000: V/AlarmManager(7677): sending alarm Alarm{42cfa490 type 3 android}
10-15 12:54:00.110: I/ActivityManager(7677): Displayed uk.org.humanfocus.hfi/.EvaluateTrainingActivity: +838ms
10-15 12:54:00.114: D/WifiStateMachine(7677): handleMessage: E msg.what=151572
10-15 12:54:00.114: D/WifiStateMachine(7677): processMsg: ConnectedState
10-15 12:54:00.114: D/WifiStateMachine(7677): processMsg: L2ConnectedState
10-15 12:54:02.258: V/AlarmManager(7677): sending alarm Alarm{42ebd600 type 1 com.facebook.katana}
10-15 12:54:02.274: V/AlarmManager(7677): sending alarm Alarm{42ec0ff0 type 1 com.android.chrome}
10-15 12:54:02.428: D/hardware_info(7386): hw_info_append_hw_type : device_name = speaker
10-15 12:54:03.011: W/BroadcastQueue(7677): Permission Denial: broadcasting Intent { act=android.net.conn.INET_CONDITION_ACTION flg=0x4000010 (has extras) } from null (pid=-1, uid=-1) requires com.facebook.permission.prod.FB_APP_COMMUNICATION due to registered receiver BroadcastFilter{41fdecd0 u0 ReceiverList{42b2f608 31941 com.facebook.katana/10103/u0 remote:429a17e8}}
10-15 12:54:03.011: W/BroadcastQueue(7677): Permission Denial: broadcasting Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } from null (pid=-1, uid=-1) requires com.facebook.permission.prod.FB_APP_COMMUNICATION due to registered receiver BroadcastFilter{41fdecd0 u0 ReceiverList{42b2f608 31941 com.facebook.katana/10103/u0 remote:429a17e8}}
10-15 12:54:03.118: D/WifiStateMachine(7677): handleMessage: E msg.what=151572
10-15 12:54:03.118: D/WifiStateMachine(7677): processMsg: ConnectedState
10-15 12:54:03.118: D/WifiStateMachine(7677): processMsg: L2ConnectedState
10-15 12:54:03.140: D/WifiStateMachine(7677): handleMessage: X
10-15 12:54:03.141: D/GCoreFlp(8174): Unknown pending intent to remove.
10-15 12:54:03.145: W/fb4a(:<default>):AbstractMqttPushService(31941): Attempt to start service that is already started
10-15 12:54:03.242: D/WifiStateMachine(7677): handleMessage: E msg.what=131155
10-15 12:54:03.242: D/WifiStateMachine(7677): processMsg: ConnectedState
10-15 12:54:03.243: D/WifiStateMachine(7677): processMsg: L2ConnectedState
10-15 12:54:03.245: D/WifiStateMachine(7677): handleMessage: X
10-15 12:54:03.319: D/dalvikvm(31941): GC_CONCURRENT freed 1833K, 9% free 20190K/22072K, paused 5ms+7ms, total 86ms
10-15 12:54:03.320: D/dalvikvm(31941): WAIT_FOR_CONCURRENT_GC blocked 68ms
10-15 12:54:03.323: W/MediaPlayer-JNI(31941): MediaPlayer finalized without being released
10-15 12:54:03.452: W/BroadcastQueue(7677): Permission Denial: broadcasting Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } from null (pid=-1, uid=-1) requires com.facebook.permission.prod.FB_APP_COMMUNICATION due to registered receiver BroadcastFilter{42b51d68 u0 ReceiverList{429feb50 31941 com.facebook.katana/10103/u0 remote:41fb8788}}
10-15 12:54:03.573: W/fb4a(:<default>):JACKSON_FALLBACK(31941): Using com.fasterxml.jackson.databind.deser.std.EnumDeserializer@42914bc8 to deserialize [simple type, class com.facebook.common.util.TriState]
10-15 12:54:03.587: W/fb4a(:<default>):JACKSON_FALLBACK(31941): Using com.fasterxml.jackson.databind.deser.std.EnumDeserializer@42bb3100 to deserialize [simple type, class com.facebook.contacts.graphql.contactprofiletype.ContactProfileType]
10-15 12:54:03.957: D/dalvikvm(31941): GC_CONCURRENT freed 3400K, 15% free 20455K/23952K, paused 4ms+7ms, total 88ms
10-15 12:54:03.957: D/dalvikvm(31941): WAIT_FOR_CONCURRENT_GC blocked 75ms
10-15 12:54:04.099: W/fb4a(:<default>):JACKSON_FALLBACK(31941): Using BeanSerializer for com.facebook.katana.newbookmark.qe.NewBookmarkConfig to serialize class com.facebook.katana.newbookmark.qe.NewBookmarkConfig
10-15 12:54:04.119: D/WifiStateMachine(7677): handleMessage: E msg.what=151572
10-15 12:54:04.120: D/WifiStateMachine(7677): processMsg: ConnectedState
10-15 12:54:04.120: D/WifiStateMachine(7677): processMsg: L2ConnectedState
10-15 12:54:04.124: D/WifiStateMachine(7677): handleMessage: X
10-15 12:54:04.177: W/fb4a(:<default>):JACKSON_FALLBACK(31941): Using com.fasterxml.jackson.databind.deser.std.EnumDeserializer@42a30980 to deserialize [simple type, class com.facebook.platform.webdialogs.PlatformWebViewActionManifest$FetchState]
10-15 12:54:04.197: I/dalvikvm(31941): Could not find method com.android.internal.widget.ILockSettings$Stub.a, referenced from method com.facebook.keyguardtype.LockSettingsServiceKeyguardTypeResolver.b
10-15 12:54:04.197: W/dalvikvm(31941): VFY: unable to resolve static method 5338: Lcom/android/internal/widget/ILockSettings$Stub;.a (Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
10-15 12:54:04.197: D/dalvikvm(31941): VFY: replacing opcode 0x71 at 0x0023
10-15 12:54:04.440: I/SBar.NetworkController(7758): onSignalStrengthsChanged SignalStrength: 19 0 -120 -160 -120 -1 -1 99 2147483647 2147483647 2147483647 2147483647 2147483647 gsm|lte 0 -108 -1 false 5 5 0 0 0 99 99 99 5 level=5
10-15 12:54:04.814: V/WebViewChromiumFactoryProvider(31941): Binding Chromium to main looper Looper (main, tid 1) {41f8cbd0}
10-15 12:54:04.815: I/LibraryLoader(31941): Expected native library version number "",actual native library version number ""
10-15 12:54:04.816: I/chromium(31941): [INFO:library_loader_hooks.cc(116)] Chromium logging enabled: level = 0, default verbosity = 0
10-15 12:54:04.817: I/BrowserStartupController(31941): Initializing chromium process, renderers=0
10-15 12:54:04.822: E/AudioManagerAndroid(31941): BLUETOOTH permission is missing!
10-15 12:54:04.864: W/chromium(31941): [WARNING:proxy_service.cc(890)] PAC support disabled because there is no system implementation
10-15 12:54:05.121: D/WifiStateMachine(7677): handleMessage: E msg.what=151572
10-15 12:54:05.121: D/WifiStateMachine(7677): processMsg: ConnectedState
10-15 12:54:05.122: D/WifiStateMachine(7677): processMsg: L2ConnectedState

And this is onResume()

super.onResume();

        if (backgroundThreadRunning == true) {
            backgroundThreadRunning = false;
        }

        if (Constants.isVideoEditing)
            editingProgress.setVisibility(View.VISIBLE);
        else
            editingProgress.setVisibility(View.GONE);

        if (Constants.isAudioProcessing)
            addAudioProgress.setVisibility(View.VISIBLE);
        else
            addAudioProgress.setVisibility(View.GONE);

        if (isHomeKeyPressed() && !(isRecentActivity)) {
            isRecentActivity = false;
            homeKeyPressed(false);
            AlertDialog.Builder ab = new AlertDialog.Builder(
                    CreateTrainingActivity.this);
            ab.setMessage(
                    "Due to Other Application Launches, video process will be cancelled!\nAre you sure you want to cancel?")
                    .setPositiveButton("Yes", dialogClickListener)
                    .setNegativeButton("No", dialogClickListener).show();
        }

    };

EDIT: HOW I FIXED THE ISSUE

I wrote this code in onResume() method

try {
    // check if any view exists on current view
    style = ((Button) findViewById(R.id.xyz_button));   
} catch (Exception e) {
    // Button was not found
    // It means, your button doesn't exist on the "current" view
    // It was freed from the memory, therefore stop of activity was performed
    // In this case I restart my app
    Intent i = new Intent();
    i.setClass(getApplicationContext(), MainActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    // Show toast to the user
    Toast.makeText(getApplicationContext(), "Data lost due to excess use of other apps", Toast.LENGTH_LONG).show();
}

解决方案

One Line: It seems some of your activity variables were freed from memory as Android OS needed memory for the Facebook application.

Explanation: When an application in foreground needs more memory than that is available, Android frees some memory from the apps that are running in background. Foreground tasks always have higher priority than background applications.

So, what might have happened to your application while it was in background is that some of its variables have lost their values which you are using in your onResume(). Because of this they are holding wrong values or default values (you can check by using Sysout) as they are re-created when you again bring your app to foreground and due to which some of your code is not working right.

这篇关于Android的 - 活动未恢复执行停止的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆