Если вы работаете в Windows, исследование proc_open
или popen
...
Но если мы находимся на одном сервере «Linux», Если вы используете cpanel, то это правильный подход:
#! / usr / bin / php & lt;? php $ pid = shell_exec («nohup nice php -f» path / to / your / script .php '/ dev / null 2 & amp; 1 & amp; echo $! "); Хотя (exec ("ps $ pid")) {// у вас также может быть стример, например fprintf, // или fgets}? & Gt;
Не используйте fork ()
или curl
, если вы сомневаетесь, что сможете справиться с ними, это просто как злоупотребление вашим сервером
Наконец, в файле script.php
, который вызывается выше, обратите внимание на это, убедитесь, что вы написали:
& lt;? php ignore_user_abort ( ПРАВДА); set_time_limit (0); ob_start (); // & lt; - действительно необязательно, но это чистый php // Код для тестирования на фоне ob_flush (); промывать(); // это два процесса вывода, если вам это нужно. // затем сделать всю возможную логику str_repeat ("", 1500); //. для выполнения баров или загрузки изображений сна (2); // стандартный лимит? & gt;
Попробуйте это
View v = inflater.inflate(R.layout.messages_fragment, null);
ListView messagesListView = (ListView) v
.findViewById(R.id.messages_list);
return v;
или в getView return
return inflater.inflate(R.layout.messages_fragment, null);
Затем
public void onActivityCreated(Bundle savedInstanceState) {
View v= getView();
ListView messagesListView = (ListView) v.findViewById(R.id.messages_list);
... // rest of the code
}
У меня была такая же проблема, и я решил ее, сохранив ссылочный объект в представлении хостинга:
public class MyFragment extends Fragment {
private View mContentView = null;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
mContentView = inflater.inflate(R.layout.dialog_disclaimer, null);
builder.setView(mContentView);
return builder.create();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ListView messagesListView = (ListView) mContentView.findViewById(R.id.messages_list);
}
}
В onCreateView () getview () возвращает null, потому что вы не завысили какой-либо вид ... замените свой код следующим образом.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view=inflater.inflate(R.layout.messages_fragment, null);
ListView messagesListView = (ListView) view
.findViewById(R.id.messages_list);
populateMessagesList();
ArrayAdapter<MessageItem> messageListAdapter = new MessageListAdapter();
messagesListView.setAdapter(messageListAdapter);
return view;
}
getView()
для инициализации listview вonActivityCreated
. – Raghunandan 17 October 2013 в 10:44