我是Java新手,在AndroidStudio中有一个名为 LaunchApp.class 的活动和一个名为 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中使用局部字符串变量,则即使完全关闭它,该应用程序也能很好地运行。请对此提供帮助。
答案 0 :(得分:0)
我在不同的源中搜索后得到了解决方案。.为了即使在终止应用程序后仍继续在Service中获取变量的值,您需要使用
return START_REDELIVER_INTENT;
代替
return START_STICKY;
在onStartCommand中。谢谢!