开机启动应用程序

3

我想让我的应用程序在启动时启动,但希望在那时运行的活动在后台运行...

我已经为此实现了BroadcastReceiver类,它是:

public class StartMyServiceAtBootReceiver extends BroadcastReceiver {

 @Override
 public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Intent myIntent = new Intent(context, MainActivity.class);
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(myIntent);

   }
}

但是活动回到前台..


1
“但是希望在那个时候将活动运行在后台”,因为这并不严格可行,也许您可以考虑解释一下为什么认为需要这样做。您正在尝试解决的问题可能有更好的解决方案。 - CommonsWare
当您启动一个意图活动时,您想要的内容将始终显示在前面... 启动一个服务并在服务中添加代码,它将在后台工作。 - rajahsekar
每当接收到短信时,我会调用MainActivity类中的静态方法(在BroadcastReceiver中),但是当设备重新启动时,所有活动和方法都被销毁,因此我想在启动时启动这些方法... - Naveed Ali
方法与活动的视图相关。 - Naveed Ali
1
但是当设备重新启动时,所有的活动和方法都会被销毁--您的进程可能随时因用户操作或操作系统决策而消失。因此,我想在启动时启动活动,因为这些方法可以被调用--然后您的进程将在几秒钟后终止,将您带回原始状态。该方法与活动的视图相关--静态方法不应与活动的视图相关,因为这通常代表着内存泄漏。 - CommonsWare
显示剩余2条评论
3个回答

2

如果您想要实现的是... 活动无法在后台运行,因为它将启动并对用户可见。

您可以做的是... 在启动时启动一个服务,在几秒钟后启动您的活动或在您需要的时候启动。


1

对于后台任务,我们在Android上使用服务。这样,您的应用程序可以在后台执行操作,而无需将应用程序带到前台。


0
如果你想要让某个程序在后台运行,你需要创建一个服务,在那里你可以在特定的时间启动你的主活动。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接