2016-06-30 3 views
-2

내 웹 페이지에서 텍스트를 확인하고 싶습니다. 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> 
+0

당신은 매니페스트에'Aktualizacja.class' 파일을 추가 했습니까? –

+0

오류 메시지를 읽으십시오. –

답변

0

: 여기 내 AndroidManifest.xml에 있습니다.

<activity 
     android:name=".Aktualizacja" 
     android:screenOrientation="portrait" 
     android:windowSoftInputMode="stateHidden|adjustPan" /> 
+0

'나는 이것을 가지고 너의 것으로 바뀌었지만 여전히 같은 오류이다. – Leftismer

+0

단추를 선언 한 다음 적용해야합니다. button.setOnclickListner –

+0

단추가 선언되었습니다. – Leftismer

0

는 다음과 같이 <application>

후의 AndroidManifest.xml에서 활동을 선언 :

<activity android:name=".MainActivity$Aktualizacja" 
     android:theme="@style/Theme.AppCompat.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.Default" /> 
     </intent-filter> 
    </activity> 
+0

전혀 작동하지 않습니다,이 부분을 밑줄 :'.MainActivity $ Aktualizacja'. – Leftismer

+0

점 뒤에있는 부분이 Activity 이름과 정확히 일치하는지 확인하십시오. 코드를 업데이트하고 현재 manifest.xml을 추가하십시오. – VikingPingvin

+0

'.Aktualizacja'로 변경 한 후에 모든 것이 올바르게 작동하지만 작동하지 않습니다. – Leftismer

관련 문제