目前我有代码从启动启动应用程序,但将其打开到前台。 这是由
完成的 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中运行代码。
请帮忙!谢谢你们:))
答案 0 :(得分:1)
来自Activities 的活动是一个提供屏幕的应用程序组件 哪些用户可以互动以便执行某些操作,例如拨打电话 电话,拍照,发送电子邮件或查看地图。 每项活动都是 给出一个用于绘制其用户界面的窗口。窗户 通常填充屏幕,但可能小于屏幕和 漂浮在其他窗户的顶部。
您可以启动一个Activity,但不存在不可见的Activity。这些是UI组件。如果您想在后台进行隐形工作,则必须在服务中进行。