Ребята, не могу понять, почему падает приложение, помогите разобраться В задумке: оно должно выполнять два разных сценария в зависимости от того, наступило или нет определенное время. Код: MainActivity
package ru.abrakadabra.timecat;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.currentTimeMillis();
}
{
int x = 1541394736; // задано конкретное время в UNIX
if (x < System.currentTimeMillis()/10) { // вызываем системное время, делим его на 10 для получения UNIX
Intent intent = new Intent(this, Activity1.class);
startActivity(intent); // реализуем первый сценарий
/* todo */
} else {
Intent intent = new Intent(this, Activity2.class);
startActivity(intent); // реализуем второй сценарий
/* todo */
}
}
}
Activity1
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class Activity1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
}
}
Activity2
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class Activity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
}
}
activity_1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Это окно запустится, если СЦЕНАРИЙ 1" />
</LinearLayout>
activity_2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Это окно запустится, если СЦЕНАРИЙ 2" />
</LinearLayout>
Манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.abrakadabra.timecat">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
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=".Activity1" />
<activity android:name=".Activity2"></activity>
</application>
</manifest>
package ru.abrakadabra.timecat;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.currentTimeMillis();
}
в этом отдельном блоке кода нет контекста - поскольку выполняется до его инициализации (считай в конструкторе) и поэтому startActivity
не может быть выполнен.
Если Вам нужно чтобы этот код выполнился при запуске активности то уберите фигурные скобки до и после этого текста
{
int x = 1541394736; // задано конкретное время в UNIX
if (x < System.currentTimeMillis()/10) { // вызываем системное время, делим его на 10 для получения UNIX
Intent intent = new Intent(this, Activity1.class);
startActivity(intent); // реализуем первый сценарий
/* todo */
} else {
Intent intent = new Intent(this, Activity2.class);
startActivity(intent); // реализуем второй сценарий
/* todo */
}
}
}
P.S. Unix Epoch считает время в целых секундах, а System.currentTimeMillis()
возвращает время в милли-секундах - это 1/1000
, а не 1/10
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Элемент Listview не реагирует на длительное нажатие и не вызывается контекстное меню
Для алгоритма требуется найти производнуюНе подскажете, какой библиотекой или каким-то иным способом можно это сделать? В скриншоте первый...
Возможно ли как-то это осуществить? Например, программа сработала, консоль отобразила результат и пользователь введя букву "s" переносит...
Объясните, чем логически является возвращаемое значение метода readInt() из класса DataInputStream?