چرخش گوشی باعث میشه ویدئو از اول پخش بشه
سلام
من یه ویدئو تو برناممم گذاشتم
گوشی رو که می چرخوننم ویدئو دوباره از اول پخش میشه .......چی کار کنم ؟؟؟
متشکرم
علت اینه که چرخه ی اجرا ی اکتیویتی تموم میشه و از نو ساخته میشه ، یعنی همون عکسه ! onresume و ...
حالا شما باید ما باید قبل چرخش ، تایم قعلی رو ذخیره کنیم ، بعد چرخش ست کنیم !
اما راستش من نمیدونم تو چه رویدادی ، از استاتید خواهش میشه راهنمایی کن ، مشکل منم هست
توی متد onCreate اگر دقت کرده باشین bundle ای به عنوان ورودی می گیره.
حالا کافیه شما در onCreate بعد از setContentView از if زیر استفاده کنید.
اگر برابر با null بود یعنی این بار اول است که Activity اجرا می شود، اما اگر null نبود بنابراین نباید کدهای دیگر اجرا شود.
if(savedInstanceState != null){
} else{
}
if(savedInstanceState != null){
}else{
Toast.makeText(this, "TEXT", Toast.LENGTH_SHORT).show();
}
ممنون علیرضا جان
سوالات
1- برای ذخیره ی داده ها قبل از چرخش ، درست عمل شده ؟
2 - نوع داده Boundle چیه ؟
3 - برای برگردوندن داده ها توی on create باید اونها رو از savedInstanceState که داریم get کنیم ؟
کد رو گذاشتم بقیه ام استفاده کنن :)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (savedInstanceState != null)
{
Toast.makeText(this, "not null", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(this, "null", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate if the process is
// killed and restarted.
savedInstanceState.putBoolean("MyBoolean", true);
savedInstanceState.putDouble("myDouble", 1.9);
savedInstanceState.putInt("MyInt", 1);
savedInstanceState.putString("MyString", "Welcome back to Android");
// etc.
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore UI state from the savedInstanceState.
// This bundle has also been passed to onCreate.
boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
double myDouble = savedInstanceState.getDouble("myDouble");
int myInt = savedInstanceState.getInt("MyInt");
String myString = savedInstanceState.getString("MyString");
}
-
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); if (savedInstanceState != null) { Toast.makeText(this, "not null", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "null", Toast.LENGTH_SHORT).show(); } vv = (VideoView) findViewById(R.id.videoView1); ///تنظیم آدرس ویدیو vv.setVideoPath("android.resource://com.example.videotest/" + R.raw.beakhkh); /// افزودن یک کنترلر (در تصویر آخر کارش رو نشون دادم ) vv.setMediaController(new MediaController(this)); ///شروع فیلم و درخواست فکوس vv.requestFocusFromTouch(); vv.start(); }
با سلام فکر کنم از تایپ کد مقابل در manifest در activity مورد نظر به نتیجه برسید.
android:configChanges="orientation"
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .