Android应用程序不工作时,屏幕关闭
问题描述:
我是新来的android, 我想在后台运行我的应用程序,但它没有。Android应用程序不工作时,屏幕关闭
一切工作正常,但当手机屏幕熄灭时,mHandlerTask停止工作。当我打开应用程序的屏幕继续工作。
下面是代码:
package com.ekaspace.security.ekaspace;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class SecuritySystem extends AppCompatActivity {
private MediaPlayer mediaPlayer;
TextView mTextView = (TextView) findViewById(R.id.textView3);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_security_system);
mediaPlayer = MediaPlayer.create(this, Uri.parse("URL"));
mediaPlayer.setLooping(true);
mediaPlayer.start();
mHandlerTask.run();
}
public void stopApp(View v) {
moveTaskToBack(true);
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
private final static int INTERVAL = 1000 * 30;
Handler mHandler = new Handler();
Runnable mHandlerTask = new Runnable()
{
@Override
public void run() {
try {
String reqURL = "URL";
URLConnection connection = (new URL(reqURL)).openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.connect();
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder html = new StringBuilder();
for (String line; (line = reader.readLine()) != null;) {
html.append(line);
}
in.close();
String response = html.toString();
mTextView.setText(response);
} catch(Exception e) {
mTextView.setText(e.toString());
}
mHandler.postDelayed(mHandlerTask, INTERVAL);
}
};
}
答
处理程序将不作为后台服务工作。
您需要使用的jobscheduler的API> 21,GcmNetworkManager或AlarmManager较低的版本,我建议你使用这个库:https://github.com/evernote/android-job
答
活动的处理程序部分工作时,应用程序在forground所以使用服务的任何背景方法。活动不是在后台进行沟通的媒介
服务可以无限期地在后台运行,即使启动它的组件被销毁。
这里是服务的官方链接 https://developer.android.com/guide/components/services.html