好的,我很难过: - (
作为一项实验,我一直在尝试启动一个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 );
}
}
答案 0 :(得分:1)
仅允许Android框架(内部系统或合作伙伴rom开发人员,如HTC,Samsung等)调用 killBackgroundProcesses ,而不允许第三方应用程序。相反,您应该在活动的 onPause 或 onStop 方法上调用finish();
,以便在屏幕离开时自动将其销毁。