1

好吧,我很难过:-(

作为一个实验,我一直在尝试启动一个 Activity,然后稍后使用 ActivityManager 包中的 killBackgroundProcesses 将其关闭。我没有收到任何错误。它似乎什么也没做。

下面的代码尽可能地缩小了范围。就像测试一样,我启动了 Activity(成功),然后当我的 onPause 方法被调用时,我尝试并停止我刚刚启动的操作(在我的真实代码中,这发生在很久以后)。

输入这个,我想到也许在当前屏幕上的 Activity 上使用 killBackgroundProcesses 可能没有意义。如果是这样,还有其他方法可以停止此活动吗?我没有这个其他应用程序的来源,我启动了它,现在我只想让它消失。而且我也意识到这不是一个正常的 Activity 生命周期行为,但至少现在,这对我来说是一个特例。

我将不胜感激任何见解或解决方案。

谢谢!

显现:

...
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
...

代码:

public class MainActivity extends Activity
{
    static String PACKAGE = "com.abc.def";

    ...

    Intent i = getPackageManager().getLaunchIntentForPackage( PACKAGE );
    startActivity( i );
    ...

    @Override
    protected void onPause()
    {
        // just to see if we can, kill the activity we just started
        ActivityManager manager =  (ActivityManager)getApplicationContext().getSystemService( Context.ACTIVITY_SERVICE );

        manager.killBackgroundProcesses( PACKAGE );     
    }
}
4

1 回答 1

1

只有 Android 框架(内部系统或合作伙伴 rom 开发人员,如 HTC、Samsung 等)才允许调用killBackgroundProcesses,而第三方应用程序则不允许。相反,您应该调用finish();Activity 的onPauseonStop方法,以便在它离开屏幕时自动销毁它。

于 2012-04-14T18:05:42.057 回答