Android ==>禁用多任务处理?

Android ==>禁用多任务处理?

问题描述:

1-如何禁用多任务处理? 我的应用程序是一个基于套接字的游戏,每当我启动应用程序,它必须首先加载主页面以启动套接字连接? 我不希望用户能够在后台运行我的应用程序。 这可能吗?Android ==>禁用多任务处理?

2-我不希望用户能够使用后退按钮在页面之间进行导航,用户只能使用我的应用程序中可用的按钮进行导航?这可能吗?

+5

这只是糟糕的设计。您需要支持硬件按钮,并且您需要从被推入后台的过程中优雅地恢复。 AFAIK,这些都是Android的基本设计哲学...... – 2010-08-14 00:53:01

+0

这不是真的。您不希望始终保持插座连接,导致电池死亡。当用户不活动时,客户机/服务器应用程序保持连接并不好,这只是浪费带宽,并会降低服务器的速度 – aryaxt 2010-08-14 01:00:06

+1

1.什么鬼东西? 2.如果您的应用程序不作为服务运行。套接字在后台不会活着。你应该阅读一下android应用程序的生命周期。只有服务会在后台继续工作,所有其他应用程序都处于“睡眠”模式。除非我读错了。 3.您可以防止某人在浏览器中查看并回到游戏中,或者接听电话并返回游戏。 4.如果套接字处于活动状态,您应该尝试处理重新连接/测试。如果您将其作为服务运行,请添加“空闲超时”并根据请求重新连接。 – 2010-08-14 13:54:20

您可以捕获后退按钮(并忽略它),但不能阻止Home按钮。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{  
    if (keyCode == KeyEvent.KEYCODE_BACK) 
    { 
     return true; 
    } 
    ... 

记住,手机只是另一种应用程序,以便该OS设计防止恶意应用程序从禁用设备的“电话”的方面。

如果你想阻止应用程序在后台运行,您可以在onPause内关闭活动()方法:

@Override 
protected void onPause() 
{ 
    super.onPause(); 
    finish(); 
} 

这将迫使你的应用程序从头开始,如果它放在出于任何原因进入背景。这可能会在手机进入睡眠状态时被调用,但是,它可能不是您正在寻找的确切行为。

+0

非常感谢,很好的答案。 1问题:我在哪里写你提供的第二个代码?在每一个活动? – aryaxt 2010-08-14 01:03:21

+1

onPause()代码需要进入任何不希望允许在后台运行的活动。正如Chinmay Kanchi所说的那样,你反对Android的理念,所以用这种方式设计你的应用将会非常困难。下面是更详细的解释什么时候生命周期函数被调用时:http://developer.android.com/guide/topics/fundamentals.html#actlife – 2010-08-14 01:11:10

+0

1更多的东西:),我有一个服务(套接字)运行在背景。调用finish()是否也会终止服务? – aryaxt 2010-08-14 01:56:30