我有一个应用程序,有许多活动,A(主),B, C, D, E和后台运行的服务…我的应用程序是一个连接到服务器的客户端。在某一点上,服务器告诉客户端注销,服务接收到消息,现在我应该注销并关闭应用程序。我试图从服务启动活动a,并在a中重写onNewIntent回调,但它从未被触发。问题是,我想要一种方法来杀死应用程序,无论我在什么活动。我认为开始一个新的活动(与CLEAR_TOP)和重写它的onNeIntent将是,但方法从未被调用。我是否应该在每个活动中使用广播和接收器?处理这种情况的正确模式是什么?
服务接收到消息时:
Intent intent = new Intent(this, HomePage.class);
Bundle b = new Bundle();
b.putBoolean("VIMSANDROID_SLOGGAUTENTE", true);
intent.putExtras(b);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
A(主):
@Override
public void onNewIntent(Intent i)
{
finish();
startActivity(i);
}
谢谢! !
调用finish()只杀死调用它的特定活动。如果你想扼杀你的应用,那就试试这个。
System.runFinalizersOnExit(真正的);//depricated现在
或
android.os.Process.killProcess (android.os.Process.myPid ());