我可以从启动启动一个活动,并让它进入后台,而无需用户看到它,android

时间:2011-09-02 15:37:09

标签: java android service broadcastreceiver

目前我有代码从启动启动应用程序,但将其打开到前台。 这是由

完成的
 public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
        Intent start = new Intent(context, ApolloMobileActivity.class);  
        start.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(start);

然后在启动时将它发送到后台我创建了另一个名为StartAtBootService的java文件 所以我将接收器类更改为:

if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
  Intent i = new Intent();
  i.setAction("com.example.ssab.StartAtBootService");
  context.startService(i);
                    }

服务类是

 public class StartAtBootService extends Service 
 {
    public IBinder onBind(Intent intent)
    {
        return null;
    }

    @Override
    public void onCreate() 
    {
        Log.v("StartServiceAtBoot", "StartAtBootService Created");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) 
    {
        Log.v("StartServiceAtBoot", "StartAtBootService -- onStartCommand()");          

        // We want this service to continue running until it is explicitly
        // stopped, so return sticky.
        return START_STICKY;
    }

    /*
     * In Android 2.0 and later, onStart() is depreciated.  Use
     * onStartCommand() instead, or compile against API Level 5 and
     * use both.
     * http://android-developers.blogspot.com/2010/02/service-api-changes-starting-with.html
        @Override
        public void onStart(Intent intent, int startId)
        {
            Log.v("StartServiceAtBoot", "StartAtBootService -- onStart()");         
        }
     */

    @Override
    public void onDestroy() 
    {
        Log.v("StartServiceAtBoot", "StartAtBootService Destroyed");
    }
 }

是否可以更改StartAtBootService以在后台运行另一个名为ApolloMobileActivity的Java文件中的活动? 我已经测试了这段代码,即使它在启动时在后台运行,它也不会在ApolloMobileActivity中运行代码。

请帮忙!谢谢你们:))

1 个答案:

答案 0 :(得分:1)

  

活动是一个提供屏幕的应用程序组件   哪些用户可以互动以便执行某些操作,例如拨打电话   电话,拍照,发送电子邮件或查看地图。 每项活动都是   给出一个用于绘制其用户界面的窗口。窗户   通常填充屏幕,但可能小于屏幕和   漂浮在其他窗户的顶部。

来自Activities

您可以启动一个Activity,但不存在不可见的Activity。这些是UI组件。如果您想在后台进行隐形工作,则必须在服务中进行。