如何在同一时间启动服务并重定向到另一个活动?

时间:2017-11-13 09:04:26

标签: java android android-intent service

我想要的是当我点击按钮,立即启动服务。一旦启动服务,立即意图进行另一项活动。

以下是我的代码:

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
        //here I start the service
        Intent intent = new Intent(MyActivity.this, UploadService.class);
                intent.putExtra(UploadService.ID,id);
        startService(intent);

        //after start the service,I want to redirect to Activity2.class
        Intent intent1 = new Intent(MyActivity.this,Activity2.class);
        startActivity(intent1);

        }
}

但是,当我执行此操作时,该服务无法启动,也不会重定向到Activity2.class,而是重定向到之前的活动。

我在intent onHandleIntent(Intent intent) Service.class内尝试@Override protected void onHandleIntent(Intent intent) { //other code here Intent intent1 = new Intent(MyActivity.this,Activity2.class); startActivity(intent1); } 问题仍然相同

以下是我在UploadService.class中尝试的内容

activity

但是服务仍未启动,意图执行上一个活动(MyActivity.class意图的活动)。

那么,如何在开始Service之后立即重定向到另一个UploadService

修改 我已经在清单中声明了<service android:name=".services.UploadService" android:enabled="true"> </service> ,如此:

HashMap

那么我在这里仍然缺少什么?

1 个答案:

答案 0 :(得分:0)

确保您已在manifest.xml中注册了Service类。 尝试将服务类名称从“服务”更改为其他名称。由于Service.java类是System类。

尝试启动以下服务

startService(new Intent(context, MyService.class));

修改

更多说明首先检查您的应用是否正在运行。如果您的应用程序未运行,请调用此代码。

Intent i = new Intent(context,SecondActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
context.startActivity(i); 

如果正在运行,请使用此代码

Intent i = new Intent(context,SecondActivity.class);    
context.startActivity(i);