내 웹 페이지에서 텍스트를 확인하고 싶습니다. http://advancedmaths.cba.pl/v.txt 그리고 감지 된 정수가 1보다 큰 경우. 20160625, 앱이 다른 활동을 열어야합니다. 활동이 시작되지 않기 때문에 여기에 문제가 있습니다. 코드 : final Context context = getApplicationContext();
모든 것이 잘 진행이 순간웹 페이지에서 특정 텍스트가 감지되었을 때 활동을 여는 방법은 무엇입니까?
package com.example.lenovo.advancedmathspl;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class MainActivity extends AppCompatActivity {
Button b, b2, b3, b4, b5, b6, b7, bw;
int a;
public class Aktualizacja extends AsyncTask <Void, Void, Void>{
@Override
protected Void doInBackground (Void... params){
try {
URL url = new URL("http", "advancedmaths.cba.pl", 80, "/v.txt");
URLConnection conn = url.openConnection();
conn.setDoInput(true);
conn.connect();
StringBuilder sb = new StringBuilder();
InputStreamReader isr = new InputStreamReader(conn.getInputStream());
BufferedReader in = new BufferedReader(isr);
String line;
line = in.readLine();
a = Integer.parseInt(line);
final Context context = getApplicationContext();
if (a > 20160625){
Intent i = new Intent(context, Aktualizacja.class);
startActivity(i);
} else {
Toast.makeText(getApplicationContext(), "No updates available.", Toast.LENGTH_LONG).show();
}
} catch (Exception e){
e.printStackTrace();
}
return null;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Context context = getApplicationContext();
b = (Button) findViewById(R.id.button);
b2 = (Button) findViewById(R.id.button2);
b3 = (Button) findViewById(R.id.button3);
b4 = (Button) findViewById(R.id.button4);
b5 = (Button) findViewById(R.id.button5);
b6 = (Button) findViewById(R.id.button6);
b7 = (Button) findViewById(R.id.button7);
bw = (Button) findViewById(R.id.buttonw);
... <-- here is the rest of my app, but it doesn't matter
View.OnClickListener l7 = new View.OnClickListener() {
@Override
public void onClick(View v) {
Aktualizacja aktualizacja = new Aktualizacja();
aktualizacja.execute(null, null, null);
}
};
b7.setOnClickListener(l7);
}
}
, 나는이 줄에 중단 점 및 예상대로 = 20160626을 설정하지만 응용 프로그램을 실행할 때,이 로그가 나타납니다
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.lenovo.advancedmathspl/com.example.lenovo.advancedmathspl.MainActivity$Aktualizacja}; have you declared this activity in your AndroidManifest.xml?
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1900)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1624)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.app.Activity.startActivityForResult(Activity.java:3761)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.app.Activity.startActivityForResult(Activity.java:3722)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:842)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.app.Activity.startActivity(Activity.java:4032)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.app.Activity.startActivity(Activity.java:4000)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at com.example.lenovo.advancedmathspl.MainActivity$Aktualizacja.doInBackground(MainActivity.java:45)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at com.example.lenovo.advancedmathspl.MainActivity$Aktualizacja.doInBackground(MainActivity.java:24)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-30 09:16:44.014 30525-30607/com.example.lenovo.advancedmathspl W/System.err: at java.lang.Thread.run(Thread.java:818)
을
웹 페이지에서 감지 된 텍스트에 따라 활동을 시작하거나 중지하는 방법에 대해 알고 계십니까? 또한 Aktualizacja 클래스가 MainActivity 클래스로 활동을 시작하는 정보를 보내는 것처럼 작동 할 수도 있지만, 나는 또한 그것을 시도하고 잘 작동하지 않습니다.
업데이트 : onCreate void에서 강제로 시작될 때 활동이 시작되지만 내가 원하는 것은 아닙니다.
UPDATE 2 : 당신의 AndroidManifest.xml 파일에 작업을 등록해야
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lenovo.advancedmathspl">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LiczbyPierwsze" />
<activity android:name=".LiczbyPierwszeJava" />
<activity android:name=".LiczbyPiramidalne" />
<activity android:name=".Trojkat" />
<activity android:name=".TrojkatJava" />
<activity android:name=".Kwadrat" />
<activity android:name=".KwadratJava" />
<activity android:name=".pieciokat" />
<activity android:name=".pieciokatJava" />
<activity android:name=".szesciokat" />
<activity android:name=".szesciokatJava" />
<activity android:name=".siedmiokat" />
<activity android:name=".siedmiokatJava" />
<activity android:name=".nkat" />
<activity android:name=".nkatJava" />
<activity android:name=".LiczbyRuthaAarona" />
<activity android:name=".LiczbyRuthaAaronaJava" />
<activity android:name=".LiczbySmitha" />
<activity android:name=".LiczbySmithaJava" />
<activity android:name=".LiczbyFigurowe" />
<activity android:name=".LiczbyTrojkatne" />
<activity android:name=".LiczbyTrojkatneJava" />
<activity android:name=".LiczbyKwadratowe" />
<activity android:name=".LiczbyKwadratoweJava" />
<activity android:name=".LiczbyPieciokatne" />
<activity android:name=".LiczbyPieciokatneJava" />
<activity android:name=".LiczbySzesciokatne" />
<activity android:name=".LiczbySzesciokatneJava" />
<activity android:name=".LiczbyNkatne" />
<activity android:name=".LiczbyNkatneJava" />
<activity android:name=".SitoEratostenesa" />
<activity android:name=".SitoEratostenesaJava" />
<activity android:name=".LiczbyGeoWielowymiarowe" />
<activity android:name=".LiczbyGeoWielowymiaroweWyswietl" />
<activity android:name=".LiczbyGeoWielowymiaroweJava" />
<activity android:name=".Aktualizacja"></activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
당신은 매니페스트에'Aktualizacja.class' 파일을 추가 했습니까? –
오류 메시지를 읽으십시오. –