ZduneX25

Developer
  • Zawartość

    4007
  • androcoin

  • Bieżący miesiąc

    7
  • Rejestracja

  • Ostatnia wizyta

Otrzymane piwa: 1172

O ZduneX25

  • Tytuł
    Developer

Kontakt

  • MSN
    zdunex25@windowslive.com

Informacje

  • Zawód
    Kierowca
  • Model Telefonu
    Xiaomi MI4W
  • Tablet
    MiPad
  • Skąd
    Olsztyn/Wielbark
  • Sieć
    Mobile Vikings
  • Płeć
    Mężczyzna
  • Firmware
    MIUI v7
  1. Ewentualnie zrobić to w Service startującym po boot complete. Ale zapis i tak musi być.
  2. A SharedPreferences do zapisania stanu i późniejszego przywrócenia?
  3. Poczytałem trochę więcej i wyszło, że () w pattern stanowią problem, da się to załatać: private static final String phrase = ".method protected onDestroy()V"; private static final String METHOD_PATTERN = "(?s)" + Pattern.quote(phrase) + "\\s(.*).end method"; i to fajnie działa jak wszystko jest podane w stringu na zasadzie: String data = ".method protected onDestroy()V\n" + " .locals 0\n" + "\n" + " .prologue\n" + " .line 153\n" + " invoke-super {p0}, Landroid/preference/PreferenceActivity;->onDestroy()V\n" + "\n" + " .line 154\n" + " return-void\n" + ".end method\n"; gorzej jak podaje treść z pliku [tu kod z pierwszego postu]. [Dodano: 07 maj 2016 - 19:51] Oczywiście się popisałem wystarczyło użyć: String content = new Scanner(new File("filename")).useDelimiter("\\Z").next(); a ja do tej pory wczytywałem plik linijka po linijce...
  4. Użycie: java -jar plik.jar [nazwa_folderu] [nazwa_pliku] [nazwa metody] Co chce osiągnąć: w zasadzie ma to wyciąć określoną metodę z pliku smali (dekompilowane apk) Co nie działa: wyszukiwanie miedzy markerami line = drukuje zawartość całego pliku smali: try (BufferedReader br = new BufferedReader(new FileReader(file.getAbsolutePath()))) { String line = null; while ((line = br.readLine()) != null) { Pattern p = Pattern.compile("(?s)method protected onDestroy(.*?)end method"); Matcher m = p.matcher(line); if(m.find()) { System.out.println(m.group(1)); } } nie umiem zmusić markerów do działania, jeżeli kontent składa się z wielu linijek, bo jak wszystko by było w jednej to działa EDIT: coś takiego: https://regex101.com/r/wL3sK2/4
  5. Masz to w Service czy w Activity?
  6. Jak daję DlZipTask.cancel(true); w jakimś buttonie czy gdziekolwiek to działa, ale jak podpinam to pod intent to zawiesza. Nie przychodzi mi do głowy jak obejść to by jednak działało przez ten intent z powiadomienia.
  7. 03-10 18:06:44.885: D/MainActivity(25549): internet connection available... 03-10 18:06:45.324: W/Toast(25549): From pl.zdunex25.updater, go ahead. 03-10 18:06:45.684: D/ANDRO_ASYNC(25549): Lenght of file: 375571197 03-10 18:06:48.416: D/ReminderService(25549): internet connection available... 03-10 18:06:49.733: I/Timeline(25549): Timeline: Activity_launch_request time:23048627 03-10 18:06:58.879: D/dalvikvm(25549): GC_FOR_ALLOC freed 1762K, 21% free 7129K/8984K, paused 15ms, total 16ms 03-10 18:07:03.629: D/dalvikvm(25549): GC_FOR_ALLOC freed 1338K, 22% free 7027K/8984K, paused 16ms, total 16ms 03-10 18:07:07.216: D/dalvikvm(25549): GC_FOR_ALLOC freed 1203K, 22% free 7028K/8984K, paused 15ms, total 15ms 03-10 18:07:07.997: D/EgretLoader(25549): EgretLoader(Context context) 03-10 18:07:07.998: D/EgretLoader(25549): The context is not activity 03-10 18:07:08.025: I/dalvikvm-heap(25549): Grow heap (frag case) to 9.521MB for 155152-byte allocation 03-10 18:07:13.149: D/dalvikvm(25549): GC_FOR_ALLOC freed 330K, 5% free 9325K/9752K, paused 22ms, total 23ms 03-10 18:07:30.902: D/dalvikvm(25549): GC_FOR_ALLOC freed 248K, 4% free 11049K/11396K, paused 24ms, total 24ms 03-10 18:07:45.071: I/dalvikvm(25549): threadid=4: reacting to signal 3 03-10 18:07:45.174: I/dalvikvm(25549): Wrote stack traces to '/data/anr/traces.txt' 03-10 18:07:51.879: D/dalvikvm(25549): GC_FOR_ALLOC freed 252K, 3% free 12841K/13192K, paused 43ms, total 43ms traces.txt: http://pastebin.com/YGUmfENQ
  8. Mam problem z przerwaniem pobierania w AsyncTask: DownloadZip DlZipTask = new DownloadZip(); w doInBackground (całość http://pastebin.com/phGSqgY7): while ((count = input.read(data)) != -1){ if(isCancelled()) break; total += count; publishProgress(""+(int)((total*100)/lenghtOfFile)); output.write(data, 0, count); } przerywać chcę z paska powiadomień: Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.getFlags(); intent.putExtra("EXIT", true); PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), downloadinprogress, intent, 0); mBuilder.addAction(R.drawable.btn_disimss, getResources().getString(R.string.notif_cancel), contentIntent); i w końcu: if (getIntent().getBooleanExtra("EXIT", false)) { NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(downloadinprogress); DlZipTask.cancel(true); } Klikam Anuluj w belce i belka się zwija, ale dalej pojawia się czarne tło na cały ekran tak z 10 sekund i aplikacja nie odpowiada czy chcesz zamknąć..
  9. Button2 może jednocześnie chować scrollview1 i pokazywać scrollview2: scrollview1.setVisibility(View.INVISIBLE); scrollview2.setVisibility(View.VISIBLE); wtedy musisz dodać dwa scrollview w layout znajdujące się w identycznej pozycji.
  10. .setVisibility(View.INVISIBLE) i VISIBLE
  11. A jaki masz dokładnie log błędu?
  12. Jeżeli strona ma stały 'szablon' to możesz pochować elementy: webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { webView.loadUrl("javascript:(function() { " + "document.getElementById('header-wrap').style.display='none';})()"); webView.loadUrl("javascript:(function() { " + "document.getElementsByClassName('gallery')[0].style.display='none';})()"); super.onPageFinished(view, url); } }); webView.loadUrl("http://xxxxxx/");
  13. Ok, MODE_MULTI_PROCESS załatwił sprawę. Dzięki
  14. Ostatni trzeci wycinek kodu jest z service.
  15. W mainactivity mam: //checkbox for notifications checkNotification = (CheckBox) popupView.findViewById(R.id.checkNotif); checkNotification.setChecked(getFromSP("checkbox1")); checkNotification.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (checkNotification.isChecked()) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); prefs.edit().putBoolean("checkeddd",true).apply(); } else { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); prefs.edit().putBoolean("checkeddd",false).apply(); } } }); public class BootComplete extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) { Intent serviceIntent = new Intent(context, NotifService.class); context.startService(serviceIntent); } } } i w notifservice: //checkbox state SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); boolean checked = prefs.getBoolean("checkeddd", false); if (checked){ Log.d("TAG", "zaznaczony"); notificationManager.notify(NOTIF_ID, builder.build()); } else{ Log.d("TAG", "odznaczony"); } Status zapamiętuje, bo jak dałem ten warunek do innej aktywności to w logu idealnie pamiętało i pokazywało stan, ale jak przewaliłem do service to jeżeli wyłączę checkbox (już po zbootowaniu) to apka nadal katuje powiadomieniami, natomiast jeżeli wyłączę i dam restart to nie ma powiadomień, analogicznie z włączaniem dopiero po restacie załapuje. Tu pytanie: czemu nie zwraca uwagi na stan checkboxa kiedy system pracuje?