关闭应用程序后,将多余的投入服务类别

问题描述 投票:0回答:1

我是Java的新手,我在AndroidStudio中有一个名为LaunchApp.class的Activity和一个名为MyService.class的服务。我制作应用程序的方式是,当应用程序完全关闭或滑动时,该服务应在后台继续正常运行。我通过以下putExtra方法将变量从LaunchApp.class发送到MyService.class

// In  LaunchApp.class under onCreate method    
Intent intent = new Intent(LaunchApp.this,MyService.class);
intent.putExtra("myVar",loginName.getText().toString());
startService(intent);

然后我在Service.class中收到以下代码:

//under onStartCommand method
String sessionVar = intent.getStringExtra("myVar");
Toast.makeText(MyService.this, sessionVar, Toast.LENGTH_SHORT).show();

该代码运行完美,我收到了“ myVar”字符串。但是当应用关闭或从屏幕上滑开时,变量停止并导致应用崩溃。而且我认为原因是将变量从该Activity传递到Service的方式,因为如果我尝试在MyService.class中使用本地字符串变量,则即使完全关闭它,应用程序也能很好地运行。请对此提供帮助。

java android service background-service
1个回答
0
投票

我在不同的源中搜索后得到了解决方案。为了即使在终止应用程序后仍继续在Service中获取变量的值,您需要使用

return START_REDELIVER_INTENT;

代替使用

return START_STICKY;

在onStartCommand中。谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.