我是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中使用本地字符串变量,则即使完全关闭它,应用程序也能很好地运行。请对此提供帮助。
我在不同的源中搜索后得到了解决方案。为了即使在终止应用程序后仍继续在Service中获取变量的值,您需要使用
return START_REDELIVER_INTENT;
代替使用
return START_STICKY;
在onStartCommand中。谢谢!