我知道很多问题都会问这个问题,并且有很多关于它的信息。但是,我还没有找到一个示例或完整的解释,关于如何在您的应用程序运行时设置服务并在其中运行一些代码。
具体来说,我想运行这段代码:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
public class SearchingFilesMain {
public static void main(String[] arg) {
String[] array = new String[1000];
int checker4 = 0;
String checker3 = "";
String checker2 = "";
String checker1 = "";
String checker = "";
int num = 0;
try {
Scanner scan = new Scanner(new BufferedReader(new FileReader(
"C:\\Users\\User\\Desktop\\asciiTracks.txt")));
while (checker != null) {
String pattern = "Array Start";
checker = scan.findWithinHorizon(pattern, 0);
if(checker.equals("Array Start")){
String pattern2 = "Array Size";
checker3 = scan.findWithinHorizon(pattern2, 300);
if(checker3 != null && checker3.equals("Array Size")){
checker4 = Integer.parseInt(scan.findInLine("(10000|\\d{1,4})"));
System.out.println(checker4);
checker1 = scan.findWithinHorizon("DATA ASCII", 500);
if(checker1 != null && checker1.equals("DATA ASCII")){
scan.nextLine();
for(int counter = 0; counter<checker4; counter++){
array[num] = scan.nextLine();
num++;
if(num >999){
num = 0;
}else{}
}
for(int counter1 = 0 ; counter1 < 1000 ; counter1++){
if(array[counter1] != null){
System.out.println(array[counter1]);
String values = (array[counter1]).toString();
System.out.println(values);
String[] valueArray = values.split("\\s+");
//no value stored in valueArray[0] index for some reason.
System.out.println(valueArray[1]);
System.out.println(valueArray[2]);
System.out.println(valueArray[3]);
System.out.println(valueArray[4]);
}else{
break;
}
}
}else{
System.out.println("DATA ASCII not found");
}
}else{System.out.println("no array size");
//similar code to that above must go in here at a later point.
//added similar code so far works perfectly at searching through file!
checker1 = scan.findWithinHorizon("DATA ASCII", 500);
if(checker1 != null && checker1.equals("DATA ASCII")){
scan.nextLine();
for(int counter = 0; counter<checker4; counter++){
array[num] = scan.nextLine();
num++;
if(num >999){
num = 0;
}else{}
}
for(int counter1 = 0 ; counter1 < 1000 ; counter1++){
if(array[counter1] != null){
System.out.println(array[counter1]);
String values = (array[counter1]).toString();
System.out.println(values);
String[] valueArray = values.split("\\s+");
//no value stored in valueArray[0] for some reason.
System.out.println(valueArray[1]);
System.out.println(valueArray[2]);
System.out.println(valueArray[3]);
System.out.println(valueArray[4]);
}else{
break;
}
}
}else{
System.out.println("DATA ASCII not found");
}
}
}else{System.out.println("no array start");}}}catch (FileNotFoundException e) {}}}
此代码在文件中搜索关键字和数字,找到与它们相关的数据并将其存储在数组中。我只是想在我的应用程序旁边的后台服务中运行此代码。我希望它将数据发送回我的应用程序,并更新 UI(因此我相信我需要使用 bindservice() )并在我的应用程序启动和停止时启动和停止。
我希望它一直运行,因为在某些时候它将从网络套接字读取数据。
您认为可能有效的任何示例代码以及关于它为什么有效的小解释,或者带有示例代码的非常简单教程的 URL 都会很棒。服务对我来说是全新的,所以如果有更好的方法来做我所描述的,请随时告诉我。