【发布时间】:2019-10-18 03:11:59
【问题描述】:
我是 java 新手,我在 AndroidStudio 中有一个名为 LaunchApp.class 的 Activity 和一个名为 MyService.class 的 Service。我以这样一种方式制作应用程序,即当应用程序完全关闭或刷走时,该服务应该在后台继续正常运行。我通过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 传递到服务的方式,因为如果我尝试在 MyService.class 中使用本地字符串变量,即使完全关闭它,应用程序也能正常运行。请帮忙。
【问题讨论】:
-
可以放崩溃日志吗?
-
崩溃日志给了我这个消息:“java.lang.RuntimeException: Unable to start service staryte.com.sTaryte.TimerService@af00c57 with null: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' 在空对象引用上"
标签: java android service background-service