içinde her bir saniye Log zorunda basit hizmeti yarattı. Alarmın yöneticisi kullanılan (official document diyor için Note: The Alarm Manager is intended for cases where you want to have your application code run at a specific time, even if your application is not currently running.
) ama rasgele tekrarlanan. İşte FAB butonuna tıklayarak hizmetini başlatmak kodumAlarm Yöneticisi tekrar Service
MainActiviry.class
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
if (fab != null) {
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,LogService.class);
startService(intent);
}
});
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
olduğunu. LogService.class
public class LogService extends Service {
private static final String TAG = LogService.class.getSimpleName();
public LogService() {
super();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e(TAG, "onStartCommand: Service calling");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onCreate() {
Timer(this);
super.onCreate();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
private void Timer(Context context){
Intent intent = new Intent(context,LogService.class);
PendingIntent pendingIntent = PendingIntent.getService(context,0,intent,0);
AlarmManager alarmManager = (AlarmManager) getApplicationContext().getSystemService(getApplicationContext().ALARM_SERVICE);
alarmManager.setRepeating(alarmManager.RTC_WAKEUP,System.currentTimeMillis(),1*1000,pendingIntent);
}
}
İşte benim LOG
O her dakika tekrar, ama her saniye yazma. Yanlış mı yazarım?
ama [resmi belgeler] (http://developer.android.com/reference/android/app/AlarmManager.html) 'diyor ile official documentation
Basit bir çözümdür Not: Alarm Yöneticisi belirli bir zamanda uygulama kodu çalıştırmak isteyen durumlar için tasarlanmıştır, başvurunuz şu anda değil running.' bile, bir kerelik kesin alarmlar için örnek gösterebiliriz yüzden, kullandı? – Kathi
Sadece basit bir zamanlayıcısını saniyede bir şeyler yapmak istiyorsanız, java Timer sınıfını da kullanabilirsiniz. Başka bir çözüm Basit işleyicisi kullanacak sayesinde alarm yöneticisi ile bunu başarmak için şansı var mı, gerçekten – Erich
yah yapmak istediğinize bağlıdır, Eylemciler nelerdir? – Kathi