- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- LG LCD és LED TV-k
- Apple notebookok
- Projektor topic
- Épített vízhűtés (nem kompakt) topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen billentyűzetet vegyek?
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- OLED TV topic
- Bambu Lab 3D nyomtatók
Új hozzászólás Aktív témák
-
WonderCSabo
félisten
Ha egy Fragment állapotát vissza kell állítani, akkor a következő a szokásos:
public class MyFragment extends ListFragment {
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
// visszaállítod az állapotot
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// kimented az állapotot
}
}Ha az allápotot manuálisan kell kimenteni/visszaállítani, azt is megteheted:
Fragment.SavedState state = getFragmentManager.saveFragmentInstanceState(yourFragment);
// ez csak akkor műküdik, ha a FragmentManagerhez éppen csatolva van a Fragment
...
MyFragment fragment = MyFragment.newInstance();
fragment.setInitialSavedState(state);[ Szerkesztve ]
-
thon73
tag
válasz WonderCSabo #1451 üzenetére
Köszi! No, ez eszembe se jutott. Csak, hogy jól értem-e:
Mivel a paraméterek között van kötelező, meg opcionális, az lenne tehát a legjobb, ha készítek egy Builder-t az első létrehozáshoz. Az összes szükséges paramétert ebben megadom a Fragment első létrehozásánál; majd az előbbi módszerrel mentem és visszatöltöm az összes - immáron belső - paramétert az újraindításnál.
Ez egyúttal azt is jelenti, hogy nem kell leszármazottakat készítenem, egyetlen osztály - többféle paraméterezéssel - megcsinálja az összes tábla listázását.
((Hm. Én csak egy könnyen bővíthető programot szerettem volna, de ez a módszer hatalmas előrelépés egy szabadon (programkód változtatás nélkül) megadható adatbázisszerkezetet használó kezelő irányában )) -
WonderCSabo
félisten
Igen, ebben az esetben ez egy járható út. A Builderben az opcinoális paramétereket is beállíthatod, hiszen részben ez is az előnye a konstruktorral szemben. [link] Egyébként nagyon sokan helytelenül hívják ezt Buildernek, ez valójában a Fleunt interface és a Builder egyfajta keveréke.
-
thon73
tag
válasz WonderCSabo #1453 üzenetére
Kipróbáltam a lehetőségeket. Végső soron a setArguments() nagyon hasonló lehetőséget ad egy Builder/Fleunt interfészhez. A hátránya, hogy a paramétereket Bundle-ban kell átadnom; előnye, hogy nem kell a mentéssel/visszatöltéssel foglalkozni, a paraméterek újraindítás után is hozzáférhetőek. A Builder/Fleunt talán könnyebben beállítható a hívó oldalon.
Lenne egy másik kérdésem is: még mindig a template alapján elkészített leszármazottak problematikájával vagyok elfoglalva - ezúttal a layout oldalán. A Fragmentek egy-egy adatbázis táblából származó elemet jelenítenek meg. A layoutban sok a közös, pl. Add, Update, Delete stb. gombok; de az űrlap szerű rész minden táblánál egyedi.
Úgy gondoltam, hogy létrehozok egy "alap" layoutot egy ViewStub-bal, amit az egyes Fragmentek programból lecserélnek a nekik megfelelő űrlap-layoutra.
Ahogy olvasgattam, egy ilyen megoldástól több helyen óvtak, merthogy nagyon rontja a performance-ot. (Én nem tudom elképzelni.) Van más lehetőség programból al-layout létrehozására? ((Mind az alap, mind az űrlap layout elég összetett.)) -
WonderCSabo
félisten
Mi ezzel a probléma? Csinálsz mondjuk egy custom view-t, ami mondjuk LinearLayoutból származik. Egy layout fájl tetejére berakoda custom view-t. Mindegyik Fragment ezt a layout filet inflateli, és a custom view alá berakja a saját űrlapját. Ezt még megdobhatod azzal, hogy csinálsz egy ősfragmentet, ami megcsinálja az előzőeket, és az eventekre is ráakaszkodik. A gyerek Fragmentek pedig berakják alá a saját űrlapot, az eventes függvényeik (add, update) pedig meghívódnak mivel az már az ősben kezelven van.
[ Szerkesztve ]
-
thon73
tag
válasz WonderCSabo #1455 üzenetére
Igen, így képzeltem el, de egyetlen részt nem értek: "és a custom view alá berakja a saját űrlapját." Ezt hogy csinálom meg? ((Xml-ben meg is van, de nem akartam, hogy minden layout-nak hivatkoznia kelljen a közös layout-ra (meg akkor az ősfragment működése is komplikálódik.) )) Programkódból ez hogyan oldható meg? addView-vel?
-
-
thon73
tag
Kicsit szégyenlem, hogy mindig én kérdezek; valószínű egy picit nagyobb fába vágtam a szekercét, mint gondoltam...
Van két adatbázis-táblám. Db1 egyik mezője (egy long id érték) hivatkozik Db2 egy elemére. Amikor Db1 űrlapját jelenítem meg, akkor természetesen nem a long érték, hanem a Db2-ben hivatkozott elem szöveges részei kerülnek kiírásra. Ez szerencsére eddig elég jól működik.A kérdésem a következő: létre tudnék-e hozni olyan custom TextView-t vagy akár speciális osztályt, amelyik KÖVETI a hivatkozás megváltozását. Vagyis, ha a long id megváltozik, akkor frissíti a hozzá tartozó szöveges értékeket is (kikeresi az új értéket az adatbázisból). ÉS mindezt valahogy úgy, hogy a Fragment (amiben az űrlap elhelyezkedik) újraindításait is átvészelje.
Bocsánat, ha homályos egy kicsit a kérdésem. Bevallom, nekem is. Ezt a funkciót most a Fragment-en belül elhelyezkedő kódrészek valósítják meg, csak szeretném ezt a kódot egy kicsit elhatárolni a Fragmenttől. Pl. ha több hasonló hivatkozó értékem van, akkor is tudjam használni. Van valakinek valami ügyes ötlete? Előre is köszönöm!
-
WonderCSabo
félisten
Nem, hiszem, hogy jó ötlet a VIew-t így az adatbázishoz kötni. A hivatkozást magát a programkódból változtatod meg, miért nem frissíted kódból egyszerűen a View-idat? Vagy egyszerűen hívsz rajtuk egy update-et, ami majd megint queryzik az adatbázisból a db modulodon kereszütl.
[ Szerkesztve ]
-
thon73
tag
válasz WonderCSabo #1462 üzenetére
A teljes táblát egy ListView jeleníti meg, ott a join-nal összekötött táblákat egyszerűen lekérdezem, és a mezőket a megf. TextView-kba teszem. Ez gond nélkül megy.
Az egyes elemeket azonban egy űrlap jeleníti meg, ahol az egyes elemek önmagukban is megváltoztathatóak. Pl. egy könyv írójának itt az írók közül kiválaszthatok valaki mást, mielőtt magát az adatbázis-sort módosítom. A kódot egyébként megírtam, és működik is, de a linkelt adatbázisok űrlapjának kódja emiatt többször hosszabb, mint az egyetlen adatbázisra hivatkozók. A végleges megvalósításban ráadásul több ilyen "linkelt" elemet is kellene kezelnem, ezért gondoltam, hogy ezt a kódot valahogy leválasztom, akár View-ba, akár speciális új változótípus-szerű osztályba.
A félelmem pont az amire WonderCSabo rámutatott; hogy ezt túlságosan belekötöm a Fragmentbe, akkor vagy az nem tud békésen eltűnni újraindítás után, vagy a lekérdezést nem tudom megfelelően elvégezni. Pláne, ha több TextView-t kell egy id-hez kötni.
Hosszas keresés után most találtam egy megoldást (vagy legalábbis annak tűnik): ITT Megpróbálom így átkonvertálni. Meg valószínűleg lassan elolvasok egy komolyabb könyvet a software design patterns témában...
-
RexpecT
addikt
Találtam egy jó kis tutorialt az ActionbarSherlock CAB részéhez: [link].
Szeretnék egy összes elemet kijelölő gombot implementálni. Gyakorlatilag a kód megegyezik a fentivel.
Így írtam meg, de valamiért mégsem működik:@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.actionbarDelete:
// retrieve selected items and delete them out
SparseBooleanArray selected = arrayAdapter
.getSelectedIds();
for (int i = (selected.size() - 1); i >= 0; i--) {
if (selected.valueAt(i)) {
ListItem selectedItem = arrayAdapter.getItem(selected.keyAt(i));
arrayAdapter.remove(selectedItem);
}
}
mode.finish(); // Action picked, so close the CAB
return true;
case R.id.actionbarSelectAll:
int all = arrayAdapter.getCount();
Toast.makeText(getActivity(), "" + all, Toast.LENGTH_LONG).show();
for (int i = 0; i < all; i++) {
arrayAdapter.toggleSelection(i);
arrayAdapter.notifyDataSetChanged();
}
mode.finish(); // Action picked, so close the CAB
return true;
default:
return false;
}
}Valakinek valami ötlete?
[ Szerkesztve ]
-
RexpecT
addikt
válasz WonderCSabo #1465 üzenetére
Igen elindul, de gombnyomásra csak a Toast üzenet jelenik meg a listában lévő elemek számával, de az összes elem kijelölése mégsem történik meg.
-
RexpecT
addikt
válasz WonderCSabo #1467 üzenetére
Köszönöm, megnézem majd holnap.
-
thon73
tag
Meg tudnátok mondani, hogy ha új, saját témát (konkrétan színvilágot) szeretnék a programomnak, akkor honnan érdemes elindulni? A hogyan az megy, csak nem tudom, hol találok olyan összefoglalót, hogy mi mindenre kell figyelemmel lenni, milyen attributumokat kell feltétlen definiálni stb.
-
thon73
tag
válasz WonderCSabo #1470 üzenetére
Az elejét olvastam, de megriasztott a két utolsó gigantikus méretű file... Ezek szerint ne kézzel álljak neki, hanem fogjak egy ilyen programot (mint pl. a holos cucc), ami legyártja a nekem tetsző színben az egészet. No, nekiállok játszani, ((eddig a külsőségekkel még nem nagyon foglalkoztam.))
Köszönöm! -
thon73
tag
válasz WonderCSabo #1472 üzenetére
Köszi, sikerült színes részeredményeket elérni, és ezzel rövidtávon meg is elégszem. De alapos külső segítséget (na jó, kritikát) kaptam a család tízéves stylistjától is :-)
Még egy kérdés, amivel nem jutok dűlőre: Van egy custom view, ami egy TextView-ból származik. Annak a formázását hogyan tudom a témához hozzáadni? Konkrétan ugyanolyan külsőt szeretnék, mint az EditText, csak más színekkel. Egy ilyesmit (a viewben) készítettem, de nem sikerül a témába szerelni.
[ Szerkesztve ]
-
WonderCSabo
félisten
Hmm, ezt még nem próbáltam ki. Itt a styles.xml. Az EditText stílusát a Widget.TextView style adja meg. Csinálsz egy style-t, ami defeniálja ezek közül azt, amit kell, és beadod a custom view-dnak az android:style propertyn keresztül.
-
thon73
tag
válasz WonderCSabo #1474 üzenetére
Igaz, style nélkül, de ezt csináltam meg. A gond csak annyi, hogy rengeteg ilyen customview van, ezért akartam betenni alapértelmezettenk ezt a style-t, vagy az attributumokat. Még keresek tovább; ezt biztos vhogy. meg lehet csinálni...
Kieg: a rengeteg, az rengeteg ugyanolyan. Összesen csak két custom view típust csináltam, csak sok példányuk van szana-szét.
[ Szerkesztve ]
-
WonderCSabo
félisten
Meg tudod csinálni programatikusan is, a custom View kosntruktorában:
class CustomEditText extends EditText {
public CustomEditText(Context context, AttributeSet attrs) {
super(new ContextThemeWrapper(context, R.style.your_style), attrs);
}
}Így minden CustomEditText példány a te stílusoddal fog rendelkezni alapból.
[ Szerkesztve ]
-
thon73
tag
válasz WonderCSabo #1476 üzenetére
Kiváló és egyszerű. Köszi! Ez jó lesz
-
thon73
tag
Hát, úgy látszik, mindig csak én akadok el... Vérszemet kaptam a stílusokon, és - gondoltam - a fragmentekbe is beteszek egy kis animációt.
Egymás mellett van két fragment: egy listFrag (list_frame frame layoutban) és egy editFrag (edit_frame-ban). Ez a layout, ami programból kapja meg a fragmenteket:<LinearLayout
android:id="@+id/landscape"
android:orientation="horizontal" ...>
<FrameLayout
android:id="@+id/list_frame"
android:layout_weight="2" .../>
<FrameLayout
android:id="@+id/edit_frame"
android:layout_weight="3" .../>editFrag itt animálva belép (csak lényegi rész!):
fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left , android.R.anim.slide_out_right, android.R.anim.slide_in_left, android.R.anim.slide_out_right);
fragmentTransaction.add(R.id.edit_frame, editFrag, "EDIT");
fragmentTransaction.addToBackStack("LIBDB");és itt animálva eltűnik:
fragmentManager.popBackStackImmediate();
A gond az, hogy edit_FRAME akkor is "tartja a helyét", ha editFRAG eltűnik, emiatt a listFRAG (és Frame) nem szélesedik ki a teljes képszélességre.
Ezért hozzátettem még egy sort:findViewById(R.id.edit_frame).setVisibility(View.GONE);
Volilá! A ListFrag most a teljes képszélességet elfoglalja! (Persze, editFrag létrehozásakor a Frame-t is visszakapcsolom.)
Csakhogy, ezzel eltűnt az animáció, mert a setVisibility előbb végrehajtásra került.Meg lehet szerintetek ezt valahogy együtt oldani? Tehát: editFrag animálva elosonjon, és a listFrag EZT KÖVETŐEN (vagy ezzel együtt) kitöltse a teljes helyet??
Előre is köszönöm! -
ted_mosby
senior tag
Van egy szerintem egész jó ötletem egy applikációra. Csak az a baj hogy még soha nem programoztam androidot.
Ez egy "buta" app lenne. Időbeállításhoz csatlakoztatnám a különböző profilokat.
Tudtok segíteni hogy hogyan is kezdjek beleSony Xperia Z1 Compact Felhasználó | "Az előre nem látott lehetőséget azonnal használd ki, s az előre nem látott nehézségekre rögtön tettel felelj." ~ Carl Von Clausevitz
-
ted_mosby
senior tag
-
thon73
tag
Ezt (az animációs kérdést) még nem tudtam megoldani, addig is kihagytam az animációt.
Lenne viszont egy egyszerűbb kérdésem: nagy mennyiségű (6-8 db) DialogFragment-et használok/nék. Mi erre a jó megközelítés, hogyan érdemes ennyit beépíteni a programba (egyetlen activity, két fragmenttel)? Van erre egy jó tutorial?
((Pontosítom: A DialogFragment-ek - önmagukban - prímán működnek, a kérdés nem A dialogus létrehozására, hanem SOK dialogus ésszerű kezelésére vonatkozik.))
Köszönöm![ Szerkesztve ]
-
thon73
tag
válasz WonderCSabo #1483 üzenetére
Megerősíteni egy-egy akciót. Van egymás mellett egy list, és a lista egyik elemét mutató űrlap. Az űrlap törlésekor rákérdez, cancel-nél rákérdez, ha a listából másik elemet választok, de az űrlap már szerkesztés alatt van, rákérdez. Ha nem töröéhető az űrlap (foreign key constraint miatt), akkor figyelmeztet. Aztán van egy file választó rész, ott még több figyelmeztetés van.
Amit nem értek: minden eseménynél a dialógus megfelelő gombja szerint megyek ugye tovább. De vannak nagyon hasonló dialógusok (are you sure pl.), ott mindegyik akciónak külön dialógust (file-t) készítek? Egyáltalán érdemes minden fragmentet külön fileba tenni, vagy egy nagy file készítse el a sok fragmetet? Szóval nem látom, milyen szerkezet a legelőnyösebb; viszont minden tutorial csak egyetlen dialogusról ír. -
Karma
félisten
Alapvetően dialógustípusonként készíts egy osztályt, ne konkrét példányonként, és ezek mind külön fájlba menjenek, hiszen semmi közük egymáshoz. Készítsd fel az osztályt úgy, hogy a szövegek, a gombok feliratai kívülről meg argumentsből is állítható legyen, így mindig be tudod paraméterezni a használat helyén.
Vagy mielőtt feltalálod újra a kereket, nézz rá az AlertDialog osztályra és ha elég, használd azt!
[ Szerkesztve ]
“All nothings are not equal.”
-
thon73
tag
Köszi, ez a "középutas" ötlet kiváló.
Eredetileg AlertDialog-ot használtam (és igen, elég), csak:
- elfordítás nem megoldott, amit úgy oldottam meg, hogy DestroyView (ha jól emlékszem) magasságában bezártam a dialogust. (na jó, ez apró hiba, minek állandóan forgatni a gépet!
- tetszett az ötlet, hogy a terjedelmes kódból kikerülnek a dialogusok, bár (mivel a dialogushívás az activity törzsön keresztül történik) ki-be kell ugrálni az egyes programrészek között.Ettől függetlenül, egy sima confirmation dialog esetén lehet, hogy tényleg célszerűbb az AlertDialog.
-
Karma
félisten
Önmagában nem kezeli a forgást, de ha DialogFragmenten keresztül használod, mindjárt jobb lesz a helyzet.
“All nothings are not equal.”
-
pittbaba
aktív tag
Sziasztok!
Ezer helyen kerestem de nem találtam, hogy lehetne alkalmazásból blokkolni és háttérbe helyezni a bejövő hívásokat.
Mindenhol azt írják nem lehet, mert nincs jogosultságom, csak system appoknak engedélyezett ez. Meg is békélnék ezzel, de akkor hogy működik a sok-sok blocker app?
Remélem tudtok segíteni, mert megőrülök, hogy az egész interneten nincs erre megoldás!PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM
-
-
pittbaba
aktív tag
válasz WonderCSabo #1491 üzenetére
Köszönöm-köszönöm!
Bár végül máshol leltem meg a pontos szájbarágósabb megoldást, a te száladon el tudtam indulni, ezer millió köszönet!
[Itt van egy jó link a bejövő hívás blokkolás android alatt kérdéshez]
Tökéletesen működik, pont ahogy szerettem volna!
PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM
-
blade4
aktív tag
Sziasztok!
Nem tudom jó helyre írom-e a kérdésem.
Azt szeretném megtudni hogy a beállítások menü háttér szinét hogyan lehet megváltoztatni, fehéret szeretnék de nem találok leírást sehol, hogyan kell megcsinálni ha lehet?
-
blade4
aktív tag
válasz WonderCSabo #1495 üzenetére
Ok!
Köszi!
-
thon73
tag
válasz SektorFlop #1493 üzenetére
Köszi SektorFlop! Én már feladtam, pedig klassz lenne
Feladat a következő: van egy listfragment balról, bármelyik elemét tappintva annak részletei megjelennek egy - nevezzük így - editfragmentben jobbról. Az editfragment mintegy "kiúszik" az elemből, majd "visszaúszik" a listába. A nehézséget az jelenti, hogy az editfragment eltűnése UTÁN a listfragment a teljes képszélességet foglalja el.
Ameddig eljutottam: A két fragment egy linearlayoutban volt. Az editfragment lassabban tűnt el, mint a helyéül szolgáló frame, így az animáció nem látszott.
Az a gyanúm, hogy átfedő fragmentekkel kellene dolgoznom (framelayout) és a programból beállítani a szélességeket. Igaz, hogy a listfragment így is azonnal elfoglalná a teljes szélességet, de legalább látszana az átfedő editfragment animációja. Ehhez a történethez viszont elég sok elvarázsolt számítás kellene - különösen, ha hozzávesszük, hogy más az elrendezés fekvő és álló módban.
((Extraként még jobb lenne, ha az activity-k is így animálnának, csak teljes képernyőben. De ez már egyszerűbb ügy lesz.))
Minden jó ötletet köszönök! -
pittbaba
aktív tag
Sziasztok!
Segítsetek nekem, mert nem értem mi zajlik..
Szeretném ha az appom újraindítaná a telefont minden nap adott óra perckor.
A reboot működik, meg van oldva, nem ez a kérdés, hanem az időzítés.
Azt olvastam, hogy erre AlarmManager a megoldás, meg is csináltam neki a reciever osztályt az egyik példa alapján ami konkrétan a google dokumentációban van.Az időzítést beállítom (on boot reciever-ben), időben elkapja az Alarm reciever, újraindítja a telefonomat. Innentől kezdve a telefon a megadott 5 perc helyett (tesztelés miatt ennyi most az intervallum nem egy nap), kb 1 percenként rebootol, nem várja meg a kezdőidőponttól eltelő öt percet. Miért?
Itt a kód:
public class RebootReceiver extends BroadcastReceiver {
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
@Override
public void onReceive(Context context, Intent intent)
{
//PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
//PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
//wl.acquire();
// Put here YOUR code.
Toast.makeText(context, "REBOOTING 14", Toast.LENGTH_LONG).show(); // For example
CancelAlarm(context);
Log.e("TAG","AUTO REBOOT NOW!");
try {
Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "reboot" });
proc.waitFor();
} catch (Exception ex) {
Log.e("TAG", "Could not reboot", ex);
}
}
public void SetTimer(Context context)
{
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, RebootReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
// Set the alarm to start at 8:30 a.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 15);
calendar.set(Calendar.MINUTE, 8);
CancelAlarm(context);
//alarmMgr.cancel(alarmIntent);
//AUTO REBOOT
//AlarmManager.INTERVAL_DAY
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),1000*60*5, alarmIntent);
Log.e("TAG","AUTO REBOOT BEÁLLÍTVA!");
}
public void CancelAlarm(Context context)
{
Intent intent = new Intent(context, RebootReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(sender);
}
}Itt van beállítva az időzítés a bootrecieverben:
public class BootReciever extends BroadcastReceiver
{
RebootReceiver Reboot = new RebootReceiver();
@Override
public void onReceive(Context context, Intent intent) {
Log.i("TAG","BOOT Received");
String action = intent.getAction();
if(action.equalsIgnoreCase("android.intent.action.BOOT_COMPLETED"))
{
//Reboot időzítése
Reboot.SetTimer(context);
Intent myIntent=new Intent(context,com.example.thedoor.MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
}
}
}PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM
-
pittbaba
aktív tag
válasz pittbaba #1498 üzenetére
Itt a megoldás:
[link]Valamiért ha a nap elmúlt idejére időzítünk (pl: 11:00-ra időzítem a következő eseményt, de már 13:00 óra van, azt gondolná az ember, másnap 11:00-kor fog aktivizálódni, hát nem.. ), akkor azonnal aktivizálódik, és lefut az onreceive, ezért időzítés előtt vizsgálni kell, elmúlt e már az időzített időpont, és ha igen, akkor hozzá kell adni egy napot a kezdő időponthoz:
if(alarm.getTimeInMillis() <= now.getTimeInMillis())
_alarm = alarm.getTimeInMillis() + (AlarmManager.INTERVAL_DAY+1);
else
_alarm = alarm.getTimeInMillis();PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM
Új hozzászólás Aktív témák
Hirdetés
- S24 Ultra 512GB (Sárga)
- Intel Core i9 14900K OEM / 36 hónap jótállás /27%-os ÁFÁ-s számlával/HATALMAS AKCIÓ KÉSZLET ELEJÉIG
- Lenovo / Dell / HP laptop, notebook töltő, adapter OUTLET
- 4K Core I5 12400F GamerRPC 6X4.0GHz 32Gb DDR4 3200MHZ 512 SSD RTX 3060 12GB DDR6 2 Év Gari
- 27GR95QE-B OLED Törött Monitor eladó Minden gyári tartozékával gyári dobozában
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest